页面有很多
  • 标签,怎么获取到这些是隐藏的,这些是显示的;
  • 发布于 2022-09-07 23:23:20 字数 312 浏览 10 评论 0

    1.需求: 假设页面有一百个li标签,有两种状态,一种是隐藏的(display:none),一种是显示在页面的(display:block);

    2.问题: 我想获取隐藏的数量和显示的数量,能否直接遍历到?

    3.附加条件: 公司的需求比较复杂,让li标签隐藏有很多种可能性,如果给隐藏的添加一个类名的话,那么那么多种可能性都要放添加类名的方法.所以想求解是否有直接遍历页面筛选出display:none的和display:block的li标签?
    图片描述

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(5

    一页 2022-09-14 23:23:20
    $('li[style*="display: none"]').length
    $('li[style*="display: block"]').length

    要注意中间冒号左右的空格 要保持一致
    而且这个是写在html里的attr 如果是默认display: block是选不了的

    小红帽 2022-09-14 23:23:20

    $("li").each(function(index){
    if($(this).css('display')=='none'){

    }
    })

    梦中的蝴蝶 2022-09-14 23:23:20

    可以在渲染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++;
        }
    });
    
    
    芸娘子的小脾气 2022-09-14 23:23:20

    Jquery css函数用法(判断标签是否拥有某属性) 判断一个层是否隐藏: ("#id").css("display")="none;

    笑饮青盏花 2022-09-14 23:23:20

    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++
        }
    })
    
    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文