我正在尝试使用jQuery查找可见的div数,并且背景颜色为Green。
(通常我只是在div中添加一个类,将其设置为绿色,并在jQuery中检查该类,但在这个实例中,我无法以任何方式实际更改页面本身的标记)
我目前将可见的div部分视为:
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
){
是否可以这样做?
答案 0 :(得分:11)
jQuery没有基于样式的选择器(:visible
除外),所以你不能这样做。
您可以改为使用filter
:
$('div.progressContainer:visible').filter(function() {
return $(this).css('background-color') === 'green';
})
请注意,它与background-color:#0F0
不匹配。
答案 1 :(得分:6)
如果您经常在多个位置使用此功能,您也可以考虑编写自己的自定义选择器(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()
答案 2 :(得分:3)
您可以使用filter微调您选择的内容,如下所示:
$('div.progressContainer:visible').filter(function(){
return $(this).css('background-color') == 'green';
});
答案 3 :(得分:0)
你可以这样做:
if($('div.progressContainer:visible').css('background-color') == 'green'){
//should equal true, if it's green
}