@BoltClock: это необходимо для значений с пробелами в них, я сделал своей привычкой указывать их всегда :)

ли простое выражение выбора, чтобы не выбирать элементы с определенным классом?

<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

Любые другие селекторы, которые могут помочь?

 J0ANMM15 нояб. 2017 г., 13:06
В случае, если кто-то хочет выбрать все элементы, которые не имеют ни class1, ни class2, конкатенация будет работать:$('div[class^="first-"]').not('.class1').not('.class2')
 BoltClock♦06 янв. 2011 г., 11:54
Вычеркните мой предыдущий комментарий, я просто перечитал вопрос. Критический классfirst-bar.

Ответы на вопрос(2)

Вы можете использовать:not фильтр выбора:

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

Или жеnot() метод:

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

Больше информации:

http://api.jquery.com/not-selector/http://api.jquery.com/not/
 Sarfraz06 янв. 2011 г., 11:55
@BoltClock: это необходимо для значений с пробелами в них, я сделал своей привычкой указывать их всегда :)
 BoltClock♦06 янв. 2011 г., 11:54
" должен быть опущен при использовании его в качестве селектора CSS.
Решение Вопроса

Вам нужно:not() селектор:

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

или, альтернативно,.not() метод:

$('div[class^="first-"]').not('.first-bar');
 hardba1105 авг. 2013 г., 01:51
Спасибо!! отключить клавишу ввода на всех, кроме моих фильтров. $ ("input: not (.rgFilterBox)"). keydown (function (e) {if (e.keyCode == 13) {return false;} return true;});
 rinogo13 янв. 2016 г., 16:16
@ Даниэль, да, но если этоявляетсятогда это супер легкое изменение, чтобы получить мгновенное повышение производительности :)
 rinogo23 июл. 2013 г., 18:47
Да, именно! :) Я надеюсь, что мой комментарий не встретил критику; Я скорее намеревался добавить к вашему уже полезному вопросу.
 lonesomeday23 июл. 2013 г., 10:18
@rinogo Теперь гораздо быстрее, когда подавляющее большинство браузеров поддерживают querySelectorAll, но так было не всегда.
 rinogo23 июл. 2013 г., 00:40
Обратите внимание: поскольку: not () работает в 2-3 раза быстрее, чем .not () (jsperf.com/jquery-css3-not-vs-not), вы можете использовать: not (). Однако в документах jQuery рекомендуется использовать .not (), так как он более читабелен (api.jquery.com/not-selector). Надеюсь, это поможет кому-то принять решение между ними!

Ваш ответ на вопрос