如何使用jQuery选择一个元素,仅当它没有任何类时?
我正在编写一个页面,允许HTML作者通过向元素添加类来覆盖默认的jQuery操作。这可以是任何类。
因此,标记可能是:
<ul>
<li class="override"></li>
<li></li>
</ul>
我希望jQuery仅选择第二个列表元素,因为它没有类。
我查看了.hasClass(),但似乎需要指定特定的类名。
谢谢!
如何使用jQuery选择一个元素,仅当它没有任何类时?
我正在编写一个页面,允许HTML作者通过向元素添加类来覆盖默认的jQuery操作。这可以是任何类。
因此,标记可能是:
<ul>
<li class="override"></li>
<li></li>
</ul>
我希望jQuery仅选择第二个列表元素,因为它没有类。
我查看了.hasClass(),但似乎需要指定特定的类名。
谢谢!
$('li:not([class])')
$('li:not([class]),li[class=""]')
示例: http://jsfiddle.net/aMC5X/
第一部分,li:not([class])
使用了“非选择器”和“具有属性”来查找没有任何class
属性的任何li
元素。
第二部分,li[class=""]
查找任何将该属性设为空字符串的li
元素。
$('li').not('li[class]')
。它的意思是选择所有的li元素,但不包括有class属性的li元素。li
类型选择器是多余的。 - Šime Vidas.not()
方法不会遍历 DOM 两次,它会过滤现有的结果。哪种方法更快可能取决于浏览器。 - nnnnnnif (!jQuery('li').hasClass('myClass') {
do something...
}