jQuery选择具有某个类的div,而该类没有其他类


Answers:


139

使用:not()排除其他类:

$('.fuu:not(.no)')

26
小窍门:.fuu:not(.no)也是有效的CSS3选择器,它将与支持的浏览器中的相同元素匹配:not()。因此,我相信jQuery将把该选择器交给这些浏览器,querySelectorAll()而不是依赖于Sizzle,从而提高了这些浏览器的性能。当然,并不是有人在乎:)
BoltClock

从我那里获得+1的额外小费,到目前为止,我的得分为+8,看来“某些”开发人员确实在乎性能:-)
Mario Awad 2013年

3
我无法关注以下工作:$("#mydiv .fuu:not(.no)").click(function(){console.log('test');});。我花了很长时间搜索有关的问题not(),最后只是因为active该类是动态添加的。我必须这样做:$("#mydiv").on('click', '.fuu:not(.no)', function(){console.log('test');});。由于我一直在这里进行挖掘,因此思考not()没有用,所以我认为在这里发表评论可能会对其他人有所帮助。
fpierrat 2015年

1
如果您需要排除多个类,则语法类似于: $('.aaa:not(.bbb):not(.ccc)')。那将得到所有具有上课aaa但没有上课的信息,bbb 或者 ccc
Kip

10

您也可以使用以下内容过滤掉“ .no”类:

$('.fuu').not('.no');

-8

获取div的类名,如果它的类名中包含SPACE,则表示它具有多个类!


4
如果有一个<div class="fuu yes">呢?它没有no该类,但它会为返回false .attr('class') == 'fuu'
BoltClock
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.