Используйте jQuery для нахождения отделения цветом фона

Я пытаюсь использовать 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   
){

Действительно ли возможно сделать это?

8
задан maxsilver 19 April 2010 в 19:48
поделиться

4 ответа

Если вы часто используете его в нескольких местах, вы также можете подумайте о написании собственного настраиваемого селектора ( 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 ()

6
ответ дан 5 December 2019 в 08:22
поделиться

jQuery не имеет селекторов на основе стилей (кроме : visible ), поэтому вы не можете этого сделать.

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

$('div.progressContainer:visible').filter(function() {
    return $(this).css('background-color') === 'green';
})

Обратите внимание, что он не будет соответствовать background-color: # 0F0 .

11
ответ дан 5 December 2019 в 08:22
поделиться

вы можете сделать это:

if($('div.progressContainer:visible').css('background-color') == 'green'){
   //should equal true, if it's green
}
0
ответ дан 5 December 2019 в 08:22
поделиться

Вы можете использовать фильтр для точной настройки того, что вы выбираете следующим образом:

$('div.progressContainer:visible').filter(function(){
   return $(this).css('background-color') == 'green';
});
3
ответ дан 5 December 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: