2014-12-05 55 views
0

我已經將打開一個新窗口中的所有外部鏈接follwoing的jQuery:jQuery的追加VAR結束URL

$("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

可以使用.attr()版本需要callback function作爲它的參數

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

注:回調實現可能需要更多的膚色的,如果你想檢查網址是否已經有另一個參數如果是這樣你將不得不使用&來追加新的參數

+0

完美謝謝! – danyo 2014-12-05 12:56:11

1

當然,你可以做到

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