<div class="fuu">
...
</div>
<div class="fuu no">
...
</div>
...
Как я могу выбрать все fuu
, кроме тех, у которых есть класс .no
?
<div class="fuu">
...
</div>
<div class="fuu no">
...
</div>
...
Как я могу выбрать все fuu
, кроме тех, у которых есть класс .no
?
Используйте :not()
, чтобы исключить другой класс:
$('.fuu:not(.no)')
.fuu:not(.no)
также является допустимым селектором CSS3 и будет соответствовать тем же элементам в браузерах, которые поддерживают :not()
. Таким образом, я считаю, что jQuery передаст этот селектор querySelectorAll()
вместо того, чтобы полагаться на Sizzle для этих браузеров, тем самым улучшая производительность в этих браузерах. Не то чтобы никого это волновало, конечно :)
- person BoltClock; 05.04.2011
$("#mydiv .fuu:not(.no)").click(function(){console.log('test');});
. Я долго искал проблему, связанную с not()
, в конце концов это произошло просто потому, что класс active
был добавлен динамически. Пришлось сделать так: $("#mydiv").on('click', '.fuu:not(.no)', function(){console.log('test');});
. Поскольку я продолжал копаться здесь, думая, что not()
не работает, я подумал, что комментарий здесь может помочь другим.
- person fpierrat; 30.11.2015
$('.aaa:not(.bbb):not(.ccc)')
. Это получит все, что имеет класс aaa
, но не класс bbb
или ccc
- person Kip; 13.07.2018
Вы также можете отфильтровать класс .no, например:
$('.fuu').not('.no');
получить имя класса div, если у него есть ПРОБЕЛ в имени класса, это означает, что он имеет более одного класса!
<div class="fuu yes">
? У него нет класса no
, но он вернет false для .attr('class') == 'fuu'
.
- person BoltClock; 05.04.2011