Фильтр элемента jquery css

Я хотел бы выбрать каждый div, который имеет красный цвет фона, например. возможно ли это в 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>

Благодарю вас

Ответы

Ответ 1

$('div[style=background-color:red]');

Ответ 2

Вы можете использовать фильтр jQuery:

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

Но, как сказал tvanfosson, правильным способом было бы присвоить класс CSS каждому из ваших div, тогда вы могли бы вызвать объекты с помощью jQuery, как это (что является предпочтительным способом работы с jQuery):

$('.yourCSSClass');

Ответ 3

Этот код также работает для CSS не, определенного в атрибуте style тега:

$('div').filter(function() {
   return $(this).css('background-color') == 'red';
});

Ответ 4

Почему это сложно? Лучшее решение - использовать классы CSS, чтобы придать вашим стилям стили, тогда вы можете просто использовать селектор классов.

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

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


$('.alert')....

Ответ 5

Прежде всего, я никогда не рекомендую устанавливать встроенные стили на элементах страницы. Назначение классов CSS и управление цветами фона во внешнем документе CSS.

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

И в вашем CSS:

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

Затем он позволяет легко выбирать красные, используя: $('div.red')

Ответ 6

Я думаю, для этого вам нужен специальный фильтр, если вы не хотите полагаться на определенный атрибут style=xxx в теге:

$('*').filter(function() { /* check the background color of this */ });