Мне нужно найти через селектора jQuery все промежутки на странице, у которой нет класса.
Пример:
<span class='Cool'>do not found me</span>
<span>me, me, take me please!!!</span>
Мне нужно найти через селектора jQuery все промежутки на странице, у которой нет класса.
Пример:
<span class='Cool'>do not found me</span>
<span>me, me, take me please!!!</span>
Используйте :not()
и атрибут not selector [att!=val]
для фильтрации элементов с непустым атрибутом class
:
$('span:not([class!=""])')
Предварительный просмотр jsFiddle
Обратите внимание, что [att!=val]
является нестандартным селектором jQuery, что означает, что селектор не может использоваться в CSS или с document.querySelectorAll()
. Если вы похожи на меня, и вы придерживаетесь стандартов и поэтому хотите, когда это возможно, избегать нестандартных селекторов jQuery, то следующий эквивалент:
$('span:not([class]), span[class=""]')
Это соответствует
span
элементы, которые не имеют атрибута class
, иspan
, которые имеют атрибут class
, но только тогда, когда значение атрибута пуст.В большинстве случаев вы должны уйти с первой частью:
$('span:not([class])')
Обычно вы обнаруживаете только атрибуты class
в разметке, сгенерированные приложением, ответственным за его вывод, или разработчиками, которые не обращают внимания.
См. этот ответ, чтобы сделать это только с помощью css Могу ли я написать элемент выбора селектора CSS, не имеющий определенного класса?
:not([class])
Собственно, это выберет что-нибудь, у которого не будет применен .class.
Я собрал jsfiddle демо
HTML
<h2 class="fake-class">fake-class will be green</h2>
<h2 class="">empty class SHOULD be white</h2>
<h2>no class should be red</h2>
<h2 class="fake-clas2s">fake-class2 SHOULD be white</h2>
<h2 class="">empty class2 SHOULD be white</h2>
<h2>no class2 SHOULD be red</h2>
CSS
h2 {color:#fff}
:not([class]) {color:red;background-color:blue}
.fake-class {color:green}