1

我想更改页面上的所有链接,它适用于没有类的链接,但不适用于有类的链接。

这是我正在使用的代码:

window.onload = function() {
       /* onload code */

var anchors = document.getElementsByTagName("a");

for (var i = 0; i < anchors.length; i++) {
    anchors[i].href = "http://www.example.com/?redirect=" + anchors[i].href
}
}

它适用于以下链接:

<a id="box-left" href="http://www.google.com"></a>

但不适用于此:

<a class="links" href="redirect.php?link=125411" onclick="launch();" target="_blank"></a>
4

5 回答 5

2

我认为正确的功能应该是:

window.onload = function() {
   /* onload code */

var anchors = document.getElementsByTagName("a");

for (var i = 0; i < anchors.length; i++) {
    anchors[i].href = "http://www.mysite.com/?redirect=" + anchors[i].href
}
}
于 2013-04-08T17:09:05.120 回答
0

利用

var anchors = document.getElementsByTagName('a');

代替

var anchors = document.getElementsByTagName("class");

顺便说一句,我建议您使用 jquery 来选择 dom 元素。

于 2013-04-08T17:09:15.633 回答
0

我在发布代码时对其进行了测试,它对我有用。
我将javascript放在标签中,将链接放在正文中。
页面上可能还有其他干扰。

于 2013-04-08T17:17:20.353 回答
0

也许你有一些奇怪的 CSS 混合了这个带有这个 class="links" 属性的链接?您也可以尝试将类添加到这两种链接并按类选择。

var anchors = document.getElementsByClassName("dynamic_links");

<a id="box-left" class="dynamic_links" href="http://www.google.com"></a> 

<a class="links dynamic_links" href="redirect.php?link=125411" onclick="launch();" target="_blank"></a>

让我知道这个好吗?

于 2013-04-08T17:19:36.990 回答
0

如果你使用 jQuery,它就像这样简单:

$('a').attr("href", "http://www.google.com/")
于 2013-04-08T17:30:28.713 回答