jQuery-Selektor "Hat kein Attribut"?

142

Ich kann ein div finden, das ein Attribut wie das folgende hat:

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

Wenn ich jedoch versuche, ein Div zu finden, das dieses Attribut nicht hat, wird eine Fehlermeldung angezeigt. Mein Code lautet:

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

Gibt es in jQuery einen Selektor "hat kein Attribut"?

Als Referenz ist hier der Anwendungsfall, dass Div, das kein Zeitstempelattribut hat, nicht dynamisch hinzugefügt wurde und daher nützlich ist.

Vielen Dank!

HO
quelle

Antworten:

220

Verwenden Sie den :not()Selektor.

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

Dies ist übrigens ein gültiger Selectors-API- Selektor, daher ist er nicht spezifisch für jQuery. Es funktioniert mit querySelectorAll()und in Ihrem CSS (mit Browserunterstützung ) .

Ich hasse Faulheit
quelle
12
Andere Möglichkeit, es zu schreiben `$ ('. Funding-Plan-Container'). Not ('[Daten-Zeitstempel]')
Epascarello
@epascarello: Sehr wahr.
Ich hasse Lazy
37

Sie können den Selektor mit dem Selektor .not () oder : not () filtern .

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

ODER

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