这个JavaScript代码有什么问题?

时间:2011-04-12 00:44:53

标签: javascript

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都变为红色,而具有组和索引的div不会保持默认颜色。只有中间应该变成红色,但事实并非如此。

3 个答案:

答案 0 :(得分:6)

您想使用“或”代替“and”:

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

答案 1 :(得分:2)

你的if语句应该是ORing他们,而不是ANDing他们

答案 2 :(得分:2)

问题是当您使用&&

时,您正在使用||
if (allHTMLElements[i].getAttribute("group") || allHTMLElements[i].getAttribute("index")) continue;