JavaScript循环遍历所有标签名为alert的元素

JavaScript loop through all elements with tagname, alert

本文关键字:alert 元素 标签名 循环 遍历 JavaScript      更新时间:2023-09-26
var all = document.getElementsByTagName("a");
for (var i=0, max=all.length; i < max; i++) {
  alert(x.innerHTML);
}

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

运行不正常。
它工作得很好,对于一个元素,它会警告它的内容,但是当有多个元素时,它开始为每个元素回显undefined

您还没有提供x的定义。试试这个:

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

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

x显然没有定义。你需要像这样:

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

然而,alert在循环中确实很烦人,我建议使用console.log来代替。

提示:在已经支持…of的浏览器中,例如Firefox,您可以简单地输入:
var all = document.getElementsByTagName("a");
for (var x of all) 
    console.log(x.innerHTML);

当然你不能在web端跨浏览器使用它,这只是在即将到来的ES6中知道的一些好东西-或者如果你要写一个Firefox的扩展,例如