我在我的网站上为我的用户提供了很多下载链接,我想为这些链接添加特定的参考链接。例如:
http://rapidgator.net/file/xxxx
现在我想使用jQuery在他们出去到外部链接的每个链接前面添加我的引用链接。我搜索过,只发现attr
的jQuery:
jQuery('a[href*="http://"]:not([href*="http://www.mysite.com"])').attr('rel', 'nofollow');
但在我的情况下,我想在链接前添加我的域名,以便URL:
<a href="http://rapidgator.net/file/xxxx">http://rapidgator.net/file/xxxx</a>
将成为:
<a href="http://myspecificdomain.com?ref=http://rapidgator.net/file/xxx">http://rapidgator.net/file/xxxx</a>
可以使用jQuery完成吗?
答案 0 :(得分:0)
这将找到以http://
开头并且尚未包含指向您网站的链接的所有链接。您可以相应地编辑该语句。然后,它会遍历每个链接,捕获当前的href
,然后将其附加到ref
文本的末尾:
$('a[href*="http://"]:not([href*="http://www.mysite.com"])').each(function(){
var current = $(this).attr("href");
$(this).attr("href", "http://myspecificdomain.com?ref=" + current);
});
答案 1 :(得分:0)
我们会阅读链接“href
”,并以您想要的格式http://myspecificdomain.com?ref=original_link
形成一个新字符串,并更新href
。
<强>步骤强>
id
标识的单个链接,或class
标识的多个链接,或更高级选择器(documentation)。href
,对其进行操作并进行更新。 编辑: 更新了代码和JSFiddle演示,以管理不以“http://”开头的链接(如Sari Alalem所建议)。以下内容将扫描所有链接,并操纵除http://myspecificdomain.com
jQuery代码:
$(document).ready(function() {
$('a').each(function(index) {
var originalUrl = $(this).attr('href');
if (originalUrl != 'http://myspecificdomain.com') {
var modifiedUrl = 'http://myspecificdomain.com?ref=' + $(this).attr('href');
$(this).attr('href', modifiedUrl)
}
alert($(this).attr('href')); // debug code, remove
});
});
答案 2 :(得分:0)
实际上你几乎就在那里,你已经可以得到你想要的所有元素,你所要做的就是循环它们并替换href属性:
$('a[href*="http://"]:not([href*="http://myspecificdomain.com"])').each(function(index){
$(this).attr('href',"http://myspecificdomain.com?ref="+$(this).attr('href'))
});
实例:http://jsfiddle.net/63pMH/1/
但是,除非您的所有链接都没有www前缀,否则不会找到包含以“www”开头的链接的锚点