Обратите внимание, что [att!=val] является нестандартным селектором jQuery, что означает, что селектор не может использоваться в CSS или с document.querySelectorAll(). Если вы похожи на меня, и вы придерживаетесь стандартов и поэтому хотите, когда это возможно, избегать нестандартных селекторов jQuery, то следующий эквивалент:
$('span:not([class]), span[class=""]')
Это соответствует
span элементы, которые не имеют атрибута class, и
span, которые имеют атрибут class, но только тогда, когда значение атрибута пуст.
В большинстве случаев вы должны уйти с первой частью:
$('span:not([class])')
Обычно вы обнаруживаете только атрибуты class в разметке, сгенерированные приложением, ответственным за его вывод, или разработчиками, которые не обращают внимания.
<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>