Ответ 1
$('div[style=background-color:red]');
Я хотел бы выбрать каждый 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>
Благодарю вас
$('div[style=background-color:red]');
Вы можете использовать фильтр jQuery:
$('div').filter(function() {
return this.element.style['background-color'] == 'red';
});
Но, как сказал tvanfosson, правильным способом было бы присвоить класс CSS каждому из ваших div, тогда вы могли бы вызвать объекты с помощью jQuery, как это (что является предпочтительным способом работы с jQuery):
$('.yourCSSClass');
Этот код также работает для CSS не, определенного в атрибуте style тега:
$('div').filter(function() {
return $(this).css('background-color') == 'red';
});
Почему это сложно? Лучшее решение - использовать классы CSS, чтобы придать вашим стилям стили, тогда вы можете просто использовать селектор классов.
<style type="text/css">
.alert {
background-color: red;
}
</style>
<div class="alert"></div>
$('.alert')....
Прежде всего, я никогда не рекомендую устанавливать встроенные стили на элементах страницы. Назначение классов 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')
Я думаю, для этого вам нужен специальный фильтр, если вы не хотите полагаться на определенный атрибут style=xxx
в теге:
$('*').filter(function() { /* check the background color of this */ });