jquery element filter by css

2020-07-02 11:33发布

I would like to select every div that has a red background color for example. is this possible in jquery?

<div style="background-color:red"></div>
<div style="background-color:white"></div>
<div style="background-color:red"></div>
<div style="background-color:yellow"></div>

thank you

标签: jquery
6条回答
狗以群分
2楼-- · 2020-07-02 11:43

Why do it the hard way? A better solution is to use CSS classes to give your elements their styles, then you can simply use the class-based selector.

<style type="text/css">
    .alert {
       background-color: red;
    }
</style>

<div class="alert"></div>


$('.alert')....
查看更多
一夜七次
3楼-- · 2020-07-02 11:44

You could use the jQuery filter:

$('div').filter(function() {
   return this.element.style['background-color'] == 'red';
});

But, as tvanfosson has said, the correct way would be to assign a CSS class to each of your divs, then you could call the objects using jQuery like this (which is the preferred way of working with jQuery):

$('.yourCSSClass');
查看更多
家丑人穷心不美
4楼-- · 2020-07-02 11:53

I think you need a custom filter for that if you don't want to rely on a certain style=xxx attribute on the tag:

$('*').filter(function() { /* check the background color of this */ });
查看更多
疯言疯语
5楼-- · 2020-07-02 11:54

First of all, I never recommend setting in-line styles on page elements. Assign CSS classes and control your background colors in an external CSS document.

<div class="red"></div>
<div class="white"></div>
<div class="red"></div>
<div class="yellow"></div>

And in your CSS:

.red {background-color:red;}
.white {background-color:white;}
.yellow {background-color:yellow;}

Then it makes it easy to select the red ones by using: $('div.red')

查看更多
ゆ 、 Hurt°
6楼-- · 2020-07-02 12:02

This code also works for CSS that is not defined in the style attribute of the tag:

$('div').filter(function() {
   return $(this).css('background-color') == 'red';
});
查看更多
\"骚年 ilove
7楼-- · 2020-07-02 12:07
$('div[style=background-color:red]');
查看更多
登录 后发表回答