jQuery Select Elements with a certain CSS

2020-02-09 09:47发布

问题:

I'm trying to add a bit of jQuery code to all elements that have position:fixed set on them. Is this sort of thing possible? It would be very helpful if there is, so I don't have to go through all my code and an extra class to the objects that are fixed.

回答1:

This one should cover all cases:

$('*').filter(function() {
    return $(this).css("position") === 'fixed';
});

Not as fast as qwertymk's answer, but also work if the css property is inherited from another rule, as demonstrated here.



回答2:

Faster and safer than Colin's answer:

$('*').filter(function(){ return this.style && this.style.position === 'fixed'; });

More about jQuery filter()



回答3:

If you are only checking for display: none and other display properties. You could use the CSS selector :visible in your usual jQuery selections, like this:

$('.items:visible')

Or to select the hidden elements:

$('.items:hidden')