jQuery Seletor "Não possui atributo"?

142

Eu posso encontrar uma div que tem um atributo assim:

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

Mas se eu tentar encontrar uma div que não possua esse atributo, recebo um erro - meu código é:

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

Existe um seletor "não tem atributo" no jQuery?

Para referência, o caso de uso aqui é que qualquer div que não possui um atributo de carimbo de data / hora não foi incluída dinamicamente e, portanto, é útil.

Obrigado!

HO
fonte

Respostas:

220

Use o :not()seletor.

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

A propósito, esse é um seletor de API de seletores válido , portanto não é específico para o jQuery. Ele funcionará com querySelectorAll()e no seu CSS (com suporte ao navegador ) .

Eu odeio preguiçoso
fonte
12
Outra maneira de escrevê-lo `$ ('. Funding-plan-container').
Not
@epascarello: É verdade.
Eu odeio preguiçoso
37

Você pode filtrar o seletor usando .not () ou : not () .

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

OU

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