javascript - 为什么getComputedStyle不返回显示:none for an element hidden by a parent?

标签 javascript html css inheritance dom

根据 this question页面和接受的答案 here ,通过 Javascript 获取继承的 CSS 值的正确方法是 getComputedStyle() .但是,这在以下示例中不起作用:

<!DOCTYPE html>
<html lang="en">
<body>
    <form id="iterateThroughMe">
        <div class="notHidden"><input name="myNum" type="number" /></div>
        <div><input name="myOtherNum" type="number" /></div>
        <input name="myText" type="text" />
        <div id="hider" style="display: none;">
            <input name="hiddenElement" type="number" />
        </div>
    </form>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
    var inputs = $("#iterateThroughMe").find('input');
    for(var i = 0; i<inputs.length; i++) {
        var displayStyle = window.getComputedStyle(inputs[i], null).display;
        console.log(
            (($(inputs[i]).is(":hidden"))?"in":"")+
            "visible element: ",inputs[i],"has display style",displayStyle);
    }
    </script>
</body>
</html>

保存并在浏览器中打开,控制台上可见如下内容:

visible element:  <input name=​"myNum" type=​"number">​ has display style inline-block
visible element:  <input name=​"myOtherNum" type=​"number">​ has display style inline-block
visible element:  <input name=​"myText" type=​"text">​ has display style inline-block
invisible element:  <input name=​"hiddenElement" type=​"number">​ has display style inline-block

在 jQuery 中有一种访问隐藏/可见状态的特定方法,已注明 here ,在上面的示例中有效,但为 not always appropriate .为什么 getComputedStyle 不区分隐藏元素和非隐藏元素,在所有四行上生成 inline-block 而不是在输出末尾生成 none

最佳答案

该元素未被渲染,因为它包含在 display: none 中。 ,不是因为它继承none为那个属性(property)。

关于javascript - 为什么getComputedStyle不返回显示:none for an element hidden by a parent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56692450/

相关文章:

javascript - 在 AngularJS 中,当表单缺少 action 属性时,有没有办法禁用默认操作的预防?

javascript - 从 Windows 8 模式以编程方式在 IE 10 桌面模式中打开内容

html - 如何在居中标题的开头动态定位段落

java - 使用 Itext 7.1.7 时,文本区域中的连续文本会剪切溢出文本的 PDF

javascript - 有没有办法在顶部显示日历的月份名称?

html - 使用单选按钮组中断键盘焦点

html - 为什么 tabindex 在 anchor 链接而不是按钮上默认为 -1?

JavaScript 循环不起作用?

css - 使用 CSS 和 div 或 span 创建扩展图像

javascript - 格式化 JavaScript 对象,在产品下显示子产品