jQuery "Does not have attribute" selector?
I can find a div that has an attribute like so:
$('.funding-plan-container[data-timestamp]')
But if I try to find a div that does not have that attribute, I get an error - my code is:
$('.funding-plan-container[!data-timestamp]')
Is there a "does not have attribute" selector in jQuery?
For reference, the use case here is that any div that does not have a timestamp attribute was not added dynamically, and hence is useful.
Thanks!
Solution 1:
Use the :not()
selector.
$('.funding-plan-container:not([data-timestamp])')
This, by the way, is a valid Selectors API selector, so it isn't specific to jQuery. It'll work with querySelectorAll()
and in your CSS (given browser support).
Solution 2:
You can filter the selector by using .not() or :not() selector.
$('.funding-plan-container:not([data-timestamp])').
OR
$('.funding-plan-container').not('[data-timestamp]')
Solution 3:
Try it with the :not()
pseudo-class selector: http://api.jquery.com/not-selector/
$('.funding-plan-container:not([data-timestamp])')