[Jquery] Selecting elements with a certain background color


Use the attribute selector [attribute=value] to look for a certain attribute value.

#id_of_the_div span[background-color=rgb(255,255,255)]

I want to select a bunch of spans in a div whose CSS contains a particular background color. How do I achieve this?

Forgot to do absolute paths when putting the style in a CSS file.

Selecting elements with a certain background color

if i understand the question correctly, the selector [attribute=value] will not work because <span> does not contain an attribute "background-color". you can test that out quickly to confirm it won't match anything:

$('#someDiv span[background-color]').size(); // returns 0


// css
.one, .two {
  background-color: black;

.three {
  background-color: red;

// html
<div id="someDiv">
    <span class="one">test one</span>
    <span class="two">test two</span>
    <span class="three">test three</span>

here's a snippet that will work:

$('div#someDiv span').filter(function() {
    var match = 'rgb(0, 0, 0)'; // match background-color: black
        true = keep this element in our wrapped set
        false = remove this element from our wrapped set
    return ( $(this).css('background-color') == match );

}).css('background-color', 'green'); // change background color of all black spans