是否有一个简单的选择器表达式来不选择具有特定类的元素?

<div class="first-foo" />
<div class="first-moo" />
<div class="first-koo" />
<div class="first-bar second-foo" />

我只想拿到前三节课,试一试

$(div[class^="first-"][class!="first-bar"])

但这将接收所有,因为最后一个div包含比第一个栏更多的内容。是否有一种方法可以在这样的表达式中使用占位符?就像这样

$(div[class^="first-"][class!="first-bar*"]) // doesn't seem to work

还有其他有用的选择器吗?


你需要:not()选择器:

$('div[class^="first-"]:not(.first-bar)')

或者,也可以使用.not()方法:

$('div[class^="first-"]').not('.first-bar');

你可以使用:not筛选器:

$('foo:not(".someClass")')

Or not()方法:

$('foo').not(".someClass")

更多信息:

http://api.jquery.com/not-selector/ http://api.jquery.com/not/


你可以在"not"方法中编写jQuery选择器:

$ (" div[类^ =“第一——“]”)自身之外($ (' .first-bar '))


它还可以使用:not()选择器处理jQuery事件。

就像这样:

jQuery(document).on('click', '.fo-line:not(.deleted) .clickable', function(e) {
    e.preventDefault();
    // do your stuff...
});

在我的情况下,我启用点击每<td类=“可点击的”>的<tr类=“fo-line”>期望所有与删除类(<tr类=“fo-line删除”>)