【问题标题】:jquery find element with class and style display:blockjquery查找具有类和样式的元素显示:块
【发布时间】:2013-10-06 02:10:07
【问题描述】:

我正在使用这个简单的 jQuery sn-p 检索“找到”元素的数量(这些元素具有 .highlight 类):

$(".highlight").length

但现在我的问题是某些元素被隐藏了,通过style="display: none;"

现在,如何获取突出显示和显示的元素数量?

类似:

$(hasClass 'highlight' AND has style 'display: block'). length ?

【问题讨论】:

    标签: jquery css highlight


    【解决方案1】:

    您可以使用 :visible 来获取可见的元素。

    $(".highlight:visible").length
    

    【讨论】:

      【解决方案2】:

      一种方法是像 Adil 提到的那样使用 :visible jQuery 伪选择器。

      一个常见的陷阱是,如果具有类 .highlight 的元素嵌套到一个隐藏的容器中,那么即使该元素具有 display: block,您也无法获取它

      相反,您可以使用 css 正则表达式,如下所示: $('.highlight[style*="display: block"]')

      一个常见的陷阱是您需要确切地知道规则是如何编写的。如果block 之前没有空格,就像这样:display:block 而不是display: block,您也将无法获取该元素。

      解决此问题的一种方法是仅以如下样式搜索术语 block$('.highlight[style*="block"]')

      【讨论】:

        【解决方案3】:

        你也可以通过css来查看元素有cssdisplay="none"或者display="block"

         $(".highlight").each(function(){
               if($(this).css("display")=="block"){
                  //Your code here
               }
            });
        

        【讨论】:

        • 我一直在寻找它的绝佳解决方案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        • 2010-10-20
        • 1970-01-01
        • 1970-01-01
        • 2010-12-02
        相关资源
        最近更新 更多