jQuery selector "No tiene atributo"?

142

Puedo encontrar un div que tenga un atributo así:

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

Pero si trato de encontrar un div que no tenga ese atributo, aparece un error: mi código es:

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

¿Hay un selector "no tiene atributo" en jQuery?

Como referencia, el caso de uso aquí es que cualquier div que no tenga un atributo de marca de tiempo no se agregó dinámicamente y, por lo tanto, es útil.

¡Gracias!

HO
fuente

Respuestas:

220

Usa el :not()selector.

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

Esto, por cierto, es un selector de API de Selectores válido , por lo que no es específico de jQuery. Funcionará con querySelectorAll()y en su CSS (dado el soporte del navegador ) .

Odio a los perezosos
fuente
12
Otra forma de escribirlo `$ ('. Funding-plan-container').
Not
@epascarello: Muy cierto.
Odio a los perezosos el
37

Puede filtrar el selector utilizando .not () o : not () selector.

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

O

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