使用jquery更改超链接

时间:2011-08-02 11:17:27

标签: jquery

我正在尝试建立一个跟踪系统,并且是一个jquery noob。

假装我有这个

<div class="ads">
<a href="http://www.google.com">Google</a>
<a href="http://www.stackoverflow.com">Stack Overflow</a>
</div>

我想用自己的网址替换网址,首先去某个网页跟踪点击,例如

http://www.mysite.com/TrackClick/?url=http://www.google.com

http://www.mysite.com/TrackClick/?url=http://www.stackoverflow.com

显然有正确的编码。

我以为我可以做点像......

$(".ads").find("a").attr("href", "http://www.mysite.com/TrackClick/?" + $(this).attr("href") );

但这不起作用......我不确定为什么

感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

未指向代码中的链接。

您可以使用函数来设置属性:

$(".ads")
.find("a")
 .attr("href", function(i,a)
               {return "http://www.mysite.com/TrackClick/?"+encodeURIComponent(a)} );

答案 1 :(得分:0)

试试这个:

$(".ads a").each(function() {
    $(this).attr("href", "http://www.mysite.com/TrackClick/?" + $(this).attr("href"));
});

您需要循环选择以相对于自己更改属性,.each方法执行以下操作:)

答案 2 :(得分:0)

我的工作代码:

http://jsfiddle.net/ZAhkK/

$('.ads a').each(function(){
   $(this).attr('href', 'http://www.mysite.com/TrackClick/?' + $(this).attr('href'));
});

答案 3 :(得分:0)

原因是attr()函数中没有定义this

改为使用.each()功能。

$(".ads a").each(function(){
    $(this).attr( 'href', 'http://www.mysite.com/TrackClick/?' + $(this).attr('href') );
});

看看

http://jsfiddle.net/H34yX/1/