试过这个,但它似乎没有工作
$('this:not([class]="doneAnimated"'){
}
HTML
<div class="doneAnimated">
</div>
<div class="doneAnimated">
</div>
<div class="">
</div>
我想只选择没有.doneAnimated的div。
答案 0 :(得分:4)
怎么样
$("div:not(.doneAnimated)")
直接查看类属性是一种脆弱的编程习惯。该类是列表,因此检查简单相等并不总是有效 - 如果它今天有效,则在以后的更改后可能无效。
如果您需要检查选择器是否未形成jQuery对象,可以使用.not()
:
$(this).not(".doneAnimated")
如果您想测试状态this
:
if (!$(this).is(".doneAnimated")) {
// do something
}
.is()
方法返回true
或false
,而.not()
就像jQuery对象内容的过滤器一样。
编辑评论指出,一般情况.is()
的替代方案为.hasClass()
:
if (!$(this).hasClass("doneAnimated")) {
// do something
}
请注意,对于.hasClass()
,您只传入了类名,没有前导.
,这是我犯过多次错误。
答案 1 :(得分:0)
$('div').not('.doneAnimated');
答案 2 :(得分:0)
$("div:not(.doneAnimated)")
正是您要找的。 :not()
函数可以包含任何CSS选择器,因此请将.doneAnimated
插入其中。
答案 3 :(得分:0)
这是一个工作示例
HTML
<div class="doneAnimated" style="display:none">
has doneAnimated class 1
</div>
<div class="doneAnimated" style="display:none">
has doneAnimated class 2
</div>
<div class="" style="display:none">
no doneAnimated class 1
</div>
<div class="randomClass" style="display:none">
no doneAnimated class 2
</div>
<强> JS 强>
$.each($("div:not(.doneAnimated)"), function() {
$(this).show();
});