JavaScript循环遍历带有标记名,警报的所有元素

时间:2013-03-05 23:20:34

标签: javascript

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

此脚本的目的很明显:它尝试遍历标记名为a的所有元素,并提醒每个元素的内容。

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

3 个答案:

答案 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的扩展名。