var all = document.getElementsByTagName("a");
for (var i=0, max=all.length; i < max; i++) {
alert(x.innerHTML);
}
此脚本的目的很明显:它尝试遍历标记名为a
的所有元素,并提醒每个元素的内容。
它运行不正确。
它工作正常,有一个元素,它会提醒它的内容,但是当有多个元素时,它会开始为每个元素回显undefined
。
答案 0 :(得分:6)
你应该使用alert(all[i].innerHTML)
。 x
未定义
答案 1 :(得分:6)
您尚未提供x
的定义。试试这个:
var all = document.getElementsByTagName("a");
for(var i = 0, max = all.length; i < max; i++)
{
alert(all[i].innerHTML);
}
答案 2 :(得分:2)
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的扩展名。