javascript - 查找集合中是否有元素具有 style.display !== "none";

标签 javascript jquery

var isAnyBool = $(selector)
 .filter(function(){ return this.style.display !== "none"; })
 .length;

// if (isAnyBool) { .. }

这按预期工作,但当需要的只是简单的真/假时,不必要地计算所有元素。如何改进以提高效率?

更新:由于 visible 不知道元素是否直接隐藏,或者某些父级实际上隐藏,我必须检查 style.display 或功能相同的东西

最佳答案

我不知道性能效率,但这更容易阅读:

var isAnyBool = $(selector).is(':visible');

编辑#2:

我认为@dandavis's answer是最好的

关于javascript - 查找集合中是否有元素具有 style.display !== "none";,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17352254/

相关文章:

javascript - 为什么我不能在 jsfiddle 上运行它

javascript - 缩小/打乱 Django js 的简单方法

javascript - 从具有异步调用的 for 循环返回

javascript - 访问 JSON 中的属性(对象)

asp.net - WCF数据服务jquery跨域问题

javascript - 使用 JSON 动态添加表行

javascript - 停止特定元素 ID 上的其他点击事件 - JQuery

javascript - 解析 X 轴日期时出错

javascript - Chrome 扩展程序 : Injecting Javascript showing code rather than output

jquery - 如何更改窗体顶部的 jquery UI 对话框按钮位置?