更改javascript内的链接

时间:2014-04-19 07:01:36

标签: javascript

我有一个关于从函数内部更改锚标记中的链接的问题。前两位代码有效,但最后一位没有。这是为什么?

var anchor = document.getElementById('myAnchor').href = "http://www.newgrounds.com";

var anchor = document.getElementById('myAnchor');
anchor.href = "http://www.newgrounds.com";

var anchor = document.getElementById('myAnchor').href;
anchor = "http://www.newgrounds.com";

5 个答案:

答案 0 :(得分:1)

因为代码中的anchor变量是string,并且您将其称为指针。

这是你的问题:

var anchor = document.getElementById('myAnchor').href = "http://www.newgrounds.com";

答案 1 :(得分:1)

最后anchor指向String,而不指向实际节点。前两个指向节点。

#1

"http://www.newgrounds.com"
    ├── assigning to ───── document.getElementById('myAnchor').href
    └── assigning to ───── anchor

#2 anchor ---------------> HTMLAnchorElement        (Object)

#3 anchor ---------------> "http://www.example.com" (String)

答案 2 :(得分:1)

那是因为你只是编辑变量的值,这是一个字符串,你还没有将它设置为元素。您将不得不使用指针

答案 3 :(得分:0)

因为在前到后一行中,锚点包含实际的href

所以anchor = "some url";

因此,更改字符串变量的值不会更改href。

您可以这样做:

var anchor = document.getElementById('myAnchor').href;
anchor = "http://www.newgrounds.com";
document.getElementById('myAnchor').href = anchor;

其他人工作是因为他们是指针,但最后一个是字符串。

答案 4 :(得分:0)

在最后一个语句中,anchor是一个字符串,而不是引用。

您正在指定anchor元素

的引用
 var anchor = document.getElementById('myAnchor'); // Reference to anchor element
 anchor.href = "http://www.newgrounds.com";  

您获得href元素的值并分配给另一个变量。

 // Value of href element, not an reference
 var anchor = document.getElementById('myAnchor').href; 
 anchor = "http://www.newgrounds.com";