Селектор по несовпадению с атрибутом

Материал из JQuery

Перейти к: навигация, поиск
[attribute != value]1.0

Соответствует всем элементам, у которых значение атрибута attribute не равно value. Если value состоит из нескольких слов, между которыми есть пробелы, то нужно заключать value в кавычки. Если value не содержит пробелов — кавычки не обязательны.

Примеры использования:

$('[cellspacing != 5]') вернет все элементы (очевидно таблиц), с параметром cellspacing не равным 5
$('[class != bomb]') вернет все элементы, классы которых не равны bomb
$('[title != "два слова"]') вернет все элементы с атрибутом title, не равным строке "два слова". Обратите внимание, что если значение атрибута содержит более одного слова, то необходимо использовать кавычки.

Замечание: Во всех версиях jQuery, начиная с 1.2, использование символа "@" перед атрибутом не нужно.

Рассматриваемый селектор является надстройкой библиотеки jQuery, а не частью официальной css спецификации (как большинство других селекторов). Поэтому, при поиске, jQuery не сможет использовать быструю нативную функцию querySelectorAll(). В связи с этим, для улучшения производительности рекомендуется в начале сузить круг искомых элементов, и уже среди них искать нужные элементы с помощью .filter():

Добиться такого же результата можно с помощью метода .not()

В действии

Все элементы div, не имеющие подсказки (аттрибут title) с текстом "Суровый элемент" будут окрашены в подозрительно вызывающие цвета:

Ссылки

Поисковые ключи:
  • атрибут не равен value
  • аттрибут не равен value
  • элементы с значением атрибута не равным value
  • найти элементы с значением атрибута не равным value
  • поиск элементов с значением атрибута не равным value