繁体   English   中英

如何使用jQuery选择没有任何类的元素?

[英]How can I select elements that don't have any of several classes using jQuery?

我有一个页面,其中包含许多附加了相同类的元素:

<div class="everyDiv"></div>
<div class="everyDiv"></div>
<div class="everyDiv"></div>
<div class="everyDiv"></div>
...

我根据用户选择隐藏/显示它们的过滤器添加了其他类:

<div class="everyDiv hide1"></div>
<div class="everyDiv hide2"></div>
<div class="everyDiv hide3"></div>
<div class="everyDiv hide2 hide3"></div>
...

现在,我需要选择一个范围(使用slice() )的.everyDiv元素,它们没有任何“hide”类 - .hide1 .hide2 .hide3

我怎么能用jQuery做到这一点?

我试过以下但没有成功:

$("div.everyDiv").not(".hide1").not(".hide2").not(".hide3").slice(n1, n2);

$("div.everyDiv:not(.hide1):not(.hide2):not(.hide3)").slice(n1, n2);

这也不起作用:

$("div.everyDiv:not(.hide1), div.everyDiv:not(.hide2), div.everyDiv:not(.hide3)").slice(n1, n2);

基本上,所有“hide#”类都有CSS: display: none; ,所以我需要选择我没有“隐藏”的指定范围的div。

这应该这样做:

$('div.everyDiv:not(.hide1, .hide2, .hide3)').hide();

http://jsfiddle.net/s9uyk/

根据评论:使小提琴正在做的更明显:不是它为所有那些没有任何隐藏类的类添加了一个类。 http://jsfiddle.net/s9uyk/2/

$('div.everyDiv').not(".hide1, .hide2, .hide3")

有一个工作的Jsfiddle演示

这有效

$("div.everyDiv").not(".hide1, .hide2, .hide3")

它成功地选择了没有.hide1.hide2.hide3 jsfiddle结帐我的例子。 它成功隐藏了与条件不匹配的元素,留下了不可见的元素。 在这种情况下,它留下1,2,3,4可见,因为它们具有.hide1.hide2.hide3类。

$("div.everyDiv:not(.hide1), div.everyDiv:not(.hide2), div.everyDiv:not(.hide3)");

它似乎对我有用:

http://jsfiddle.net/maniator/mTkNL/

$("div.everyDiv").not(".hide1").not(".hide2").not(".hide3");

尝试

$("[class=class2]")

要么

$('.someclass[class="someclass"]')

我认为你的选择器很好 - 你只是没有做任何事情。 尝试这个:

$("div.everyDiv").not(".hide1").not(".hide2").not(".hide3").fadeOut(1000);

您还可以简化此选择器:

$("div.everyDiv").not(".hide1, .hide2, .hide3").fadeOut(1000);

你可以看到它在这里工作:

http://jsfiddle.net/nS4jC/1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM