仅显示每个可见元素

时间:2012-07-22 21:41:11

标签: javascript jquery html

<div class="save" id="1">1</div>
<div class="save" id="2" style="display:none">2</div>
<div class="save" id="3">3</div>
<div class="save hide" id="4">4</div>
<div class="save" id="5">5</div>

.hide {
 display: none;
}

$('.save').each(function(){
   console.log($(this).attr('id'));
})

这告诉我:

1
2
3
4
5

但应该是:

1
3
5

我必须使用什么来遍历每个可见元素?

2 个答案:

答案 0 :(得分:7)

使用:visible选择器:

$('.save:visible').each(function(){
    console.log(this.id);
})

如果您已有.save个元素,则可以filter

var $saves = $(".save");
$saves.filter(':visible').each(function(){
    console.log(this.id);
})

答案 1 :(得分:3)

$('.save:visible').each(function(){
       console.log($(this).attr('id'));
    })

或者

$('.save').each(function(){
      if( $(this).is(':visible') ) { //only if visible
           console.log($(this).attr('id'));
      }
      else { //only if hidden

      }
    })