Javascript/Jquery:get';显示';非';t附加到网页上

Javascript/Jquery:get';显示';非';t附加到网页上,javascript,jquery,Javascript,Jquery,假设我有一门课“.someClass”: 然后在javascript代码中创建div,然后为div应用类: var myDiv = document.createElement("div"); myDiv.className = "someClass"; 现在是否可以检查“myDiv”是否具有“display:none”样式,而不将其附加到网页 或者测试“display”属性的唯一方法是将“myDiv”附加到页面,然后快速检查“$(myDiv).css('display')”,然后将其从页面中

假设我有一门课“.someClass”:

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

var myDiv = document.createElement("div");
myDiv.className = "someClass";
现在是否可以检查“myDiv”是否具有“display:none”样式,而不将其附加到网页

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


谢谢,非常感谢您的帮助。

未附加到任何DOM元素的每个元素都被视为不可见

顺便说一句,我建议您使用以下行代码来验证元素是否隐藏

jQuery(element).is(':visible')

未附加到任何DOM元素的每个元素都被视为不可见

顺便说一句,我建议您使用以下行代码来验证元素是否隐藏

jQuery(element).is(':visible')

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

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

var div = document.createElement('div');
getComputedStyle(div);
您将得到一个将所有CSS属性应用于DIV的对象,您将看到它们都是空的

现在,如果您这样做:

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

你会看到他们现在都满了。当元素从DOM中删除时也会发生这种情况,而不仅仅是当它没有被追加时。

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

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

var div = document.createElement('div');
getComputedStyle(div);
您将得到一个将所有CSS属性应用于DIV的对象,您将看到它们都是空的

现在,如果您这样做:

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

你会看到他们现在都满了。当一个元素从DOM中删除时也会发生这种情况,而不仅仅是当它没有被追加时。

您需要创建div。但是,为了防止用户出现任何问题,请尝试创建一个临时元素,将其放置在负索引中的绝对位置。i、 e.左侧:-9999px顶部-9999px也最好不透明度为0;以防“someClass”元素也被定位为绝对


然后在上面的元素中创建/插入所需的“someClass”元素。

您需要创建div。但是,为了防止用户出现任何问题,请尝试在负索引中创建一个临时元素。i、 e.左侧:-9999px顶部-9999px也最好不透明度为0;以防“someClass”元素也被定位为绝对

然后在上述元素中创建/插入所需的“someClass”元素。

请参见小提琴:

看小提琴:

将导致是,直到你,即使

myDiv.style.display="block";
所以我认为将其添加到dom中很重要

将导致是,直到你,即使

myDiv.style.display="block";

因此,我认为将它添加到dom中很重要

它不应该是
myDiv.className=“someClass”?试试这篇文章的答案。希望对你有用。[使用Javascript/jQuery从外部样式表获取CSS值][1][1]:它不应该是
myDiv.className=“someClass”?试试这篇文章的答案。希望对你有用。[使用Javascript/jQuery从外部样式表获取CSS值][1][1]:我想在您执行“$(myDiv).hide()之后,您强制设置了“display:none”,即使它不在那里。无论如何,谢谢。是的,我错过了这一点。您找到了正确的解决方案吗?我想在执行“$(myDiv).hide()之后,您强制设置了“display:none”即使它不在那里。无论如何,谢谢。是的,没错,我错过了这一点。嗯,你找到正确的解决方案了吗?谢谢你的详细解释!谢谢你的详细解释!