jQuery Селектор «Не имеет атрибута»?

145

Я могу найти div с таким атрибутом:

$('.funding-plan-container[data-timestamp]')

Но если я попытаюсь найти div, у которого нет этого атрибута, я получаю сообщение об ошибке - мой код:

$('.funding-plan-container[!data-timestamp]')

Есть ли в jQuery селектор «не имеет атрибута»?

Для справки, здесь вариант использования состоит в том, что любой div, не имеющий атрибута timestamp, не добавлялся динамически и, следовательно, полезен.

Благодарность!

HO
источник

Ответы:

224

Используйте :not()селектор.

$('.funding-plan-container:not([data-timestamp])')

Это, кстати, действующий селектор API селекторов, поэтому он не является специфическим для jQuery. Он будет работать с querySelectorAll()вашим CSS и в нем (с учетом поддержки браузера ) .

Я ненавижу ленивых
источник
12
Другой способ написать это `$ ('. Financial-plan-container').
Not
@epascarello: Совершенно верно.
I Hate Lazy
38

Вы можете отфильтровать селектор, используя селектор .not () или : not () .

$('.funding-plan-container:not([data-timestamp])').

ИЛИ

$('.funding-plan-container').not('[data-timestamp]') 
Сушант -
источник