How do you select elements based on their style?

2020-01-27 03:16发布

问题:

Using jQuery, how would you find elements which have a particular style (eg: float: left), regardless of whether it's an inline style or one defined in a CSS file?

回答1:

Using the filter function:

$('*').filter(function() {
     return $(this).css('float') == 'left';
});

Replace '*' with the appropriate selectors for your case.



回答2:

This is gonna be slow. Like REALLY slow. If you know you need to select all elements with a given CSS style, you will see much better performance by applying a single additional css rule to each element, and then selecting by that rule.

It's going to be MUCH faster and more readable to boot.

CSS:

.float-left {float:left}

Javascript:

$('.float-left');


回答3:

Well, I don't know if I would approach this this way. Why not just rename those elements with a consistent ID or class name, and select that?

If that's not an option, this should work:

this.getElementsByTagName('div').item(0).style.float = 'left';

I think.