2013-07-08 60 views
0

我有一个网页,有很多关于它的元素,如下面的:JavaScript的比较Element.style.display

<tr class="blah" style="Display:none;"> 

当我遇到一个元素就像一个以上,我想这样做就可以了一些处理。我遇到的问题是“if子句”永远不会返回真正的值。警报将显示“无”(不带引号)。我期望“if条款”评估为真。我已经尝试使用“==”并在显示后添加“.ToString()”。这不起作用。

var rows = document.getElementsByTagName("tr"); 
for(var i=0; i < rows.length; i++) { 
    alert(rows[i].style.display); 
    if (rows[i].style.display === "none") { 
     //Do some stuff 
     //Code never gets here. 
    } 
} 

为什么出现“如果条款”中的比较总是为false?

+0

对我的作品?见http://jsfiddle.net/Sr2J2/1/ –

+0

你可以显示你的完整HTML /任何相关的CSS或jsFiddle复制你的问题? – lifetimes

回答

0

它可以完美的为我的代码工作,试着在你的if子句后面放置一个alert。
只是recomendation,使用显示,而不是显示

<tr class="blah" style="display:none;"> 
+0

谢谢你们。它正在工作。不知道我以前做过什么。 – Dave

0

我想在的jsfiddle你的代码,它工作正常,检查出来http://jsfiddle.net/HygdL/

var rows = document.getElementsByTagName("tr"); 
for(var i=0; i < rows.length; i++) { 
    if (rows[i].style.display === "none") { 
     alert('okay, its works!'); 
    } 
} 
+0

可能在代码中存在另一个问题? –

+0

我想那是Alex。它正在工作。另外,从来没有见过这个jsfiddle之前的事情。感谢您的链接! – Dave