jquery将var附加到url的结尾

时间:2014-12-05 12:51:07

标签: jquery append

我有以下jquery,它在新窗口中打开所有外部链接:

$("a[href^='http']").not("[href*='<?php bloginfo('url');?>']").attr('target','_blank');

这将显示如下:

<a href="http://www.example.com" target="_blank">Link</a>

但是我想调整它并在URL的末尾添加一个变量用于跟踪目的。所以它看起来像这样:

<a href="http://www.example.com?myvarhere=true" target="_blank">Link</a>

2 个答案:

答案 0 :(得分:2)

您可以使用.attr()作为参数的callback function版本

$("a[href^='http']").not("[href*='<?php bloginfo('url');?>']").attr('target', '_blank').attr('href', function (i, href) {
    return href + '?somevar=somevalue'
});

注意:如果要检查网址是否已有其他参数,则回调实现可能必须更加复杂,否则您必须使用&附加新参数

答案 1 :(得分:1)

当然,你可以做到

var myVariable = "some string";
$("a[href^='http']").not("[href*='<?php bloginfo('url');?>']")
.attr('target','_blank').attr('href', function(_, h){
   return h + "?" + myVariable + "=true";
});