【问题标题】:determine whether elements are visible确定元素是否可见
【发布时间】:2016-02-07 17:27:48
【问题描述】:

我有许多 <div> 元素具有相同的类名,但没有相同的父元素。
如何使用 jQuery 来确定是否有任何 <div> 元素设置了 display:block

【问题讨论】:

标签: jquery


【解决方案1】:
$.each(".my-class", function(a, b) {
  if (this.style.display == "block") {
    return this
  }
});

【讨论】:

    【解决方案2】:

    假设您正在尝试查找 divstestdisplay 设置为 block

    $(".test:visible")

    这会给你想要的结果

    【讨论】:

    • 这不返回具有display: tabledisplay: inline-block 或任何其他display 值的元素(hidden 除外)吗?
    • 确实如此。 :) 但是,如果代码遵循正确的设计,那么 .test 应该只有 display:block;
    • 嗯,这是一个很大的假设:“正确的设计”只有display:block——真的吗? - 有许多正确设计带有其他类型的显示属性(所有这些都有效!)你不能假设只有display:block会被使用
    • 好的。告诉我proper design 对同一类上的display 属性有不同的值吗?当然只有display:block; 不会被使用。但是,如果您在同一类上更改 display 的值,那么您正在做一些令人毛骨悚然的事情。最好假设一个类应该只有一个显示属性值。
    • 我并不是指同一 display 属性的“许多”属性。我的意思是display 属性可以有不同的值(block 除外),并且可以使用其中任何一个值。您假设 visible 等同于 block (显然不是)。 visible 元素可以将 display 属性设置为其他内容(例如 inline-blocktable-cell) - 我的意思是您的答案将选择所有 visible 元素而不是 只有 OP 要求的那些。它与适当的设计无关,您的答案根本不够好
    猜你喜欢
    • 2014-06-19
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2017-05-23
    • 2011-03-20
    • 2017-01-01
    相关资源
    最近更新 更多