2011-04-12 82 views
0
var allHTMLElements = document.body.getElementsByTagName("*"); 
for (var i = 0; i < allHTMLElements.length; i++) { 
    if (allHTMLElements[i].getAttribute("group") && allHTMLElements[i].getAttribute("index")) continue; 
    allHTMLElements[i].style.color = "red"; 
} 

<div group="myGroup">Hello</div> 
<div>Hello</div> 
<div index="d534">Hello</div> 

所有的div变成红色,并与组和索引的那些不留默认颜色。只有中间部分会变红,但不会。这段JavaScript代码有什么问题?

回答

2

问题是您使用的是&&当你应该使用||

if (allHTMLElements[i].getAttribute("group") || allHTMLElements[i].getAttribute("index")) continue; 
+0

为什么这个答案,即使它是一样好作为顶级投一个,而且比第二个好,有这么多的少upvotes? – 2011-04-12 00:58:27

6

您想使用“或”,而不是“和”:

allHTMLElements[i].getAttribute("group") || allHTMLElements[i].getAttribute("index") 
2

你的if语句应该是或运算他们,而不是他们安定