如何选择具有特定css属性的div

时间:2014-07-22 10:52:01

标签: javascript jquery css

//style
.TemplateBox1{display:none;} 

//Html
<div class="TemplateBox1" id="9">  1 </div>
<div class="TemplateBox1" id="10"> 2 </div>
<div class="TemplateBox1" id="11"> 3 </div>

//jQuery
$('div', this).each(function (e) { //Do something  });

这是我的代码的一部分,在开始时divs显示(CSSproperty)是none(未显示),在用户点击某个按钮后,div的属性变为block(显示)。我只需要选择它们的属性显示的div:使用jQuery阻止,我试过:

$('div', this).**css("display")=="block"**.each(function (e) { //Do something  }); - didn't work..

我需要添加到我的jQuery ...

4 个答案:

答案 0 :(得分:6)

尝试使用:visible选择器,

$('div:visible')

您似乎正在使用TemplateBox1类隐藏这些元素,因此您也可以这样写,即使用:not()选择器

$('div:not(.TemplateBox1)')

答案 1 :(得分:5)

试试这个::visible div选择器

$(this).find('div:visible').each(function(){
 // do stuff here
});

答案 2 :(得分:0)

一种方式是$('div:visible')

另一种方式是(Demo

$('.TemplateBox1', this).each(function (e) {
    var $css = $(this).css('display');
    if($css == 'none'){
        $(this).css('display','block')
    }
});

答案 3 :(得分:0)

为什么不使用纯JS?

var list = document.getElementsByTagName("div");
foreach(var i = 0;i < list.length, i++)
{ 
   if(list[i].style.display == "block")
    {
      // do Something;
    }
}