7
var all = document.getElementsByTagName("a");
for (var i=0, max=all.length; i < max; i++) {
  alert(x.innerHTML);
}

这个脚本的目的很明显:它试图遍历所有带有标签 name 的元素a,并提醒每个元素的内容。

它运行不正确。
它工作正常,有一个元素,它会提醒它的内容,但是当有多个元素时,它开始undefined为每个元素回显。

4

3 回答 3

7

你应该使用alert(all[i].innerHTML). x未定义

于 2013-03-05T23:22:13.100 回答
7

您没有为x. 试试这个:

var all = document.getElementsByTagName("a");
for(var i = 0, max = all.length; i < max; i++) 
{
    alert(all[i].innerHTML);
}
于 2013-03-05T23:22:53.443 回答
3

x显然是未定义的。你需要有类似的东西:

var all = document.getElementsByTagName("a");

for (var i = 0, x; x = all[i++];)
    alert(x.innerHTML);

但是alert循环真的很烦人,我建议console.log改用。

提示:在已经支持for...of的浏览器中,例如 Firefox,您可以简单地拥有:

var all = document.getElementsByTagName("a");

for (var x of all) 
    console.log(x.innerHTML);

当然,你不能在跨浏览器的网页上使用它,这只是在即将到来的 ES6 中知道的好东西——或者如果你要编写一个 Firefox 的扩展。

于 2013-03-05T23:27:07.420 回答