我有一个页面,其中包含许多附加了相同类的元素:
<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
) - {{1 }}
如何使用jQuery执行此操作?
我尝试了以下但没有成功:
.hide1 .hide2 .hide3
这也不起作用:
$("div.everyDiv").not(".hide1").not(".hide2").not(".hide3").slice(n1, n2);
$("div.everyDiv:not(.hide1):not(.hide2):not(.hide3)").slice(n1, n2);
基本上,所有“hide#”类都有$("div.everyDiv:not(.hide1), div.everyDiv:not(.hide2), div.everyDiv:not(.hide3)").slice(n1, n2);
的CSS,所以我需要选择不是“隐藏”的指定范围的div。
答案 0 :(得分:13)
这应该这样做:
$('div.everyDiv:not(.hide1, .hide2, .hide3)').hide();
根据评论:让小提琴做得更明显: 不是它给所有那些没有任何隐藏类的类添加了一个类。 http://jsfiddle.net/s9uyk/2/
答案 1 :(得分:2)
$('div.everyDiv').not(".hide1, .hide2, .hide3")
答案 2 :(得分:1)
这有效
$("div.everyDiv").not(".hide1, .hide2, .hide3")
成功选择了没有.hide1
,.hide2
,.hide3
的元素。在jsfiddle结帐我的示例。它成功隐藏了与条件不匹配的元素,留下了不可见的元素。在这种情况下,它留下1,2,3,4可见,因为它们有.hide1
,.hide2
,.hide3
类。
答案 3 :(得分:0)
$("div.everyDiv:not(.hide1), div.everyDiv:not(.hide2), div.everyDiv:not(.hide3)");
答案 4 :(得分:0)
这似乎对我有用:
答案 5 :(得分:0)
$("div.everyDiv").not(".hide1").not(".hide2").not(".hide3");
答案 6 :(得分:0)
尝试
$("[class=class2]")
或
$('.someclass[class="someclass"]')
答案 7 :(得分:0)
我认为你的选择器很好 - 你只是没有做任何事情。试试这个:
$("div.everyDiv").not(".hide1").not(".hide2").not(".hide3").fadeOut(1000);
您还可以简化此选择器:
$("div.everyDiv").not(".hide1, .hide2, .hide3").fadeOut(1000);
你可以看到它在这里工作: