每个元素仅显示可见元素

Show only visible elements with each

本文关键字:元素 显示      更新时间:2023-12-24
<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

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

使用 :

visible 选择器:

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

如果您已有.save元素,则可以filter它们:

var $saves = $(".save");
$saves.filter(':visible').each(function(){
    console.log(this.id);
})
$('.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
      }
    })