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 树结构中的链接 - 像这样:&lt;li&gt;&lt;a&gt;i think this link is this&lt;/a&gt;&lt;ul class="sub-menu"&gt;,在这种情况下我不会想到子menu 将是兄弟姐妹。可能试图在隐藏其他子菜单的同时显示当前子菜单 - 但这只是猜测

以上是关于Jquery - 选择一个不是我的选择器的类的主要内容,如果未能解决你的问题,请参考以下文章

分针网——每日分享: jquery选择器的用法

带有 :not 选择器的 CSS 在作为 jquery 选择器放置时工作,而不是纯 CSS [重复]

jquery 中多条件选择器,相对选择器,层次选择器的区别

jquery 选择器的写法?一组li,选择不是第一个,且不是最后一个所有的所有li。如何写啊?

JQuery选择器--------页面效果

比较 jquery 选择器的性能