使用javascript操纵标签

时间:2014-03-06 19:25:19

标签: javascript

我是学习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>

3 个答案:

答案 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");