我是学习JavaScript的新手,我正在练习操纵标签, 这是我的代码 我知道我在这里犯了一个愚蠢的错误,但我不确定哪个部分出了问题? 有人可以给我一些提示吗?
<html lang='en'>
<head>
<meta charset="UTF-8" />
<title>
HTML Hyperlinks
</title>
</head>
<body>
<h1>
HTML Hyperlinks
</h1>
<p>
Here is a link to <a name = "hyper" href="http://yahoo.com/">page</a>.
The text around the link is not part of the link.
</p>
<script>
var element = document.getElementsByTagName("a");
var attribute = element.getAttribute("href");
element.setAttribute("href","Http://google.com");
element.setAttribute("target","_blank");
</script>
</body>
</html>
答案 0 :(得分:1)
getElementsByTagName
表示元素。复数。
它返回一个NodeList,它类似于一个数组,而不是一个元素。
您需要循环返回其值(例如使用for
)或通过索引([0]
)
答案 1 :(得分:1)
您正在请求标签集合,但之后将它们视为一个实体。
<script>
var element = document.getElementsByTagName("a");
var attribute = element.getAttribute("href");
element.setAttribute("href","Http://google.com");
element.setAttribute("target","_blank");
</script>
试试这个
<script>
var element = document.getElementsByTagName("a")[0];
var attribute = element.getAttribute("href");
element.setAttribute("href","Http://google.com");
element.setAttribute("target","_blank");
</script>
或
<script>
var elements = document.getElementsByTagName("a");
for(var i = 0; i < elements.length; i++)
{
var element = elemenets[i];
var attribute = element.getAttribute("href");
element.setAttribute("href","Http://google.com");
element.setAttribute("target","_blank");
}
</script>
答案 2 :(得分:0)
更改此行
var attribute = element.getAttribute("href");
到这个
var attribute = element[0].getAttribute("href");