JavaScript getElementsByTagName不起作用

时间:2012-07-05 19:06:04

标签: javascript html hyperlink

我有一个HTML页面,上面有几个链接。我想在不同的标签中打开所有这些链接,所以我尝试使用

var foo = document.getElementsByTagName("a");
for(var i = 0; i < foo.length; i++) {
    foo[i].target = "_blank";
}

但为什么这不起作用(据我所知,getElementsByTagName()返回一个数组,我可能也错了)?

2 个答案:

答案 0 :(得分:3)

尝试使用setAttribute并将您的脚本放在window.onload处理程序中(这是为了确保DOM Hierarchy已完全构建,您可以访问DOM Element s):

window.onload = function(){
   var foo = document.getElementsByTagName("a");
   for(var i = 0; i < foo.length; i++) {
       foo[i].setAttribute('target', '_blank');
   }
};

实际上getElementsByTagName会返回NodeList个对象,该对象与Array具有一些相似的功能,但它不是Array

答案 1 :(得分:0)

我也有同样的问题我得到了答案。答案是: 在关闭boday标签之后使用你的javascript链接,如:

<!DOCTYPE html>
<html>
<head>

</head>
<body>
<a src="#">link</a>
<a src="#">link</a>
<a src="#">link</a>
<a src="#">link</a>
<a src="#">link</a>
<a src="#">link</a>

<input type="text" size="20"><br>
<input type="text" size="20"><br>
<input type="text" size="20"><br><br>

<script src="JavaScript/alert.js">

</script>
</body>
</html>