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])')