Я пытаюсь использовать jQuery для нахождения количества отделений, которые и видимы, и имеют цвет фона Green.
(Обычно я просто добавил бы класс к отделению, разработал бы его зеленый, и проверка на тот класс в jQuery, но в этом экземпляре, я не могу на самом деле изменить разметку самой страницы всегда),
У меня в настоящее время есть видимая часть отделения, работающая как:
if( // if there are more than one visible div
$('div.progressContainer:visible').length > 0
){
Я хотел бы бросить некоторый "и цвет фона, зеленый" селектор там.
// not legit javascript
if( // if there are more than one visible div, and its color is green
$('div.progressContainer:visible[background-color:green]').length > 0
){
Действительно ли возможно сделать это?
Если вы часто используете его в нескольких местах, вы также можете подумайте о написании собственного настраиваемого селектора ( http://answers.oreilly.com/topic/1055-creating-a-custom-filter-selector-with-jquery/ )
jQuery.expr[':'].greenbg = function(elem) {
return jQuery(elem).css('background-color') === 'green';
};
Тогда просто выполните $ ('div: visible: greenbg'). Stuffs ()
jQuery не имеет селекторов на основе стилей (кроме : visible
), поэтому вы не можете этого сделать.
Вместо него можно использовать фильтр
:
$('div.progressContainer:visible').filter(function() {
return $(this).css('background-color') === 'green';
})
Обратите внимание, что он не будет соответствовать background-color: # 0F0
.
вы можете сделать это:
if($('div.progressContainer:visible').css('background-color') == 'green'){
//should equal true, if it's green
}
Вы можете использовать фильтр для точной настройки того, что вы выбираете следующим образом:
$('div.progressContainer:visible').filter(function(){
return $(this).css('background-color') == 'green';
});