javascript - 使用纯 javascript 仅获取可见元素

标签 javascript

我有如下元素

<div class="one">send Message</div>

<div class="one">send Message</div>

<div class="one">send Message</div>

我有一个网页,上面有发送消息按钮,其中一次只能看到一个按钮。其他两个按钮通过一些 javascript 代码隐藏。例如,如果第二个按钮可见,我应该是只能获取该元素。

所以我的代码会是这样的

document.querySelector(".one:visible");

在 jquery 中,代码是 $(".one:visible"); ,它工作正常,但我需要知道如何通过纯 javascript 执行此操作。

最佳答案

这里有一些你可以使用的东西,纯 Javascript:

// Get all elements on the page (change this to another DOM element if you want)
var all = document.getElementsByTagName("*");

for (var i = 0, max = all.length; i < max; i++) {
    if (isHidden(all[i]))
        // hidden
    else 
        // visible
}

function isHidden(el) {
    var style = window.getComputedStyle(el);
    return ((style.display === 'none') || (style.visibility === 'hidden'))
}

关于javascript - 使用纯 javascript 仅获取可见元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44612141/

相关文章:

javascript - 服务器端JS防止SQL注入(inject)的正确方法是什么

javascript - 如何用另一个数组中元素中的字符串替换数组中元素中的字符串?

javascript - 如何使用 jQuery 获取段落中相同字符的数量?

javascript - 奇怪的关闭行为

javascript - 对 html 中选定的值求和

javascript - SmoothScroll 导航不适用于 bootstrap 4

javascript - 在 ReactJS 中更新数组中对象的最佳方法是什么?

用户首次访问页面时使用 JavaScript LightWindow 而不是弹出窗口

javascript - HTML5 视频书签 - 点击并播放时存储当前时间

javascript - 在HTML中添加脚本JS问题