Jquery - 选择一个不是我的选择器的类
Posted
技术标签:
【中文标题】Jquery - 选择一个不是我的选择器的类【英文标题】:Jquery - select a class that is not my selector 【发布时间】:2015-05-07 13:59:58 【问题描述】:我有一个这样的选择器:
$(this).next('.sub-menu');
我正在用它做一些事情,然后我想用不是这个子菜单的所有 .sub-menu 做一些事情。我知道我可以使用 :not 以某种方式,但我不知道确切的措辞。
我猜是这样的:
$('.sub-menu):not(this).next('.sub-menu')
但该语法无效。我该怎么做?
【问题讨论】:
$('.sub-menu).not(this).next('.sub-menu')
$('.sub-menu').not(this).next('.sub-menu')
我认为您在子菜单选择中缺少单引号?它应该是 $('.sub-menu' ) 而不是 $('.sub-menu)
jQuery: exclude $(this) from selector的可能重复
【参考方案1】:
您需要将您正在使用的子菜单放入一个变量中,如下所示:
var currentMenu = $(this).next('.sub-menu');
然后您可以选择其余的子菜单:
$('.sub-menu').not(currentMenu);
More info about the not selector
【讨论】:
【参考方案2】:可以使用jquery方法.siblings()
例如,如果我有 5 个 <p>
并且我选择了其中一个,那么我需要这样做:
html
<p>me</p>
<p>me</p>
<p class="start">not me</p>
<p>me</p>
<p>me</p>
JS
$(function()
var $this = $('p.start');
var $siblings = $this.siblings();
$siblings.css('color', 'red');
);
http://jsfiddle.net/ubfca3uc/
【讨论】:
取决于所有子菜单是否都是当前子菜单的兄弟 @Pete 但是如果他使用.next()
来浏览它们,他们肯定是这样吗?
这取决于 this
是什么,我认为这将是一个 li 树结构中的链接 - 像这样:<li><a>i think this link is this</a><ul class="sub-menu">
,在这种情况下我不会想到子menu 将是兄弟姐妹。可能试图在隐藏其他子菜单的同时显示当前子菜单 - 但这只是猜测以上是关于Jquery - 选择一个不是我的选择器的类的主要内容,如果未能解决你的问题,请参考以下文章
带有 :not 选择器的 CSS 在作为 jquery 选择器放置时工作,而不是纯 CSS [重复]