我正在尝试建立一个跟踪系统,并且是一个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") );
但这不起作用......我不确定为什么
感谢您的帮助。
答案 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)
我的工作代码:
$('.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') );
});
看看