1.需求: 假设页面有一百个li标签,有两种状态,一种是隐藏的(display:none),一种是显示在页面的(display:block);
2.问题: 我想获取隐藏的数量和显示的数量,能否直接遍历到?
3.附加条件: 公司的需求比较复杂,让li标签隐藏有很多种可能性,如果给隐藏的添加一个类名的话,那么那么多种可能性都要放添加类名的方法.所以想求解是否有直接遍历页面筛选出display:none的和display:block的li标签?
1.需求: 假设页面有一百个li标签,有两种状态,一种是隐藏的(display:none),一种是显示在页面的(display:block);
2.问题: 我想获取隐藏的数量和显示的数量,能否直接遍历到?
3.附加条件: 公司的需求比较复杂,让li标签隐藏有很多种可能性,如果给隐藏的添加一个类名的话,那么那么多种可能性都要放添加类名的方法.所以想求解是否有直接遍历页面筛选出display:none的和display:block的li标签?
可以在渲染li的时候就做区分
html
<li data-dp="no">
<li>
<li data-dp="no">
jq获取数量
//隐藏的li
$("li[dp=no]").length
//不隐藏的li
$("li[dp!=no]").length
如果不想加class 或者属性,直接遍历li并作判断
var li_dp_no = 0;
var li_dp_block = 0;
$("li").each(function(){
if($(this).css("display")=="none")){
li_dp_no++;
}else{
li_dp_block++;
}
});
each
遍历 判断当前元素display
属性是否==none
||block
数量递增
var isBlockNum = 0,isNoneNum = 0
$("li").each(function(index){
if($(this).css('display')=='none'){
isNoneNum++
}else if($(this).css('display')=='block'){
isBlockNum++
}
})
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
要注意中间冒号左右的空格 要保持一致
而且这个是写在html里的attr 如果是默认display: block是选不了的