Javascript/Jquery : get 'display' css style for DOM element that wasn't appended to web page

标签 javascript jquery

假设我有一个类“.someClass”:

.someClass {
    display: none;
}

然后在 javascript 代码中创建 div,然后为 div 应用类:

var myDiv = document.createElement("div");
myDiv.className = "someClass";

现在是否可以在不将其附加到网页的情况下检查“myDiv”是否具有样式“display: none”?

或者测试“显示”属性的唯一方法是将“myDiv”附加到页面,然后快速检查“$(myDiv).css('display')”,然后将其从页面中删除?

谢谢,非常感谢帮助。

最佳答案

在将元素添加到页面之前,您无法检查该属性。 CSS 规则属于文档,并且在许多情况下取决于元素在 DOM 树中的位置。在添加元素之前,不会填充 CSS 属性。

您可以在 chrome 控制台中测试它:

var div = document.createElement('div');
getComputedStyle(div);

您将获得一个对象,其中所有 CSS 属性都应用于 DIV,您会发现它们都是空的。

现在,如果你这样做:

document.body.appendChild(div);
getComputedStyle(div);

您会看到它们现在已填满。当一个元素从 DOM 中移除时也会发生这种情况,而不仅仅是当它没有被附加时。

关于Javascript/Jquery : get 'display' css style for DOM element that wasn't appended to web page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22532441/

相关文章:

java - 使用 jQuery,如何将字符串数组作为 http 参数附加到 http 请求?

jquery - 我如何创建一个叠加层,它以不透明度 0 的形式保留在 DOM 中,但不会阻止内容被点击?

带有空 else 的 Javascript 三元运算符

两个函数的 Javascript 回调()

javascript - 在 Firefox 插入符号中,始终出现在可编辑的 div 中

javascript - 单击时 JQuery 淡出列表元素

javascript - 每秒更新 Javascript 中的文本框值

javascript - 单选按钮矩阵组 javascript jquery

javascript - 移动设备的特定 css 但不基于屏幕分辨率

javascript - 分页悬停时的光滑幻灯片