2011-04-12 110 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語句應該是或運算他們,而不是他們安定