jQuery在链接中添加域名

时间:2014-03-01 18:42:16

标签: jquery

我在我的网站上为我的用户提供了很多下载链接,我想为这些链接添加特定的参考链接。例如:

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完成吗?

3 个答案:

答案 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);
});

Example

答案 1 :(得分:0)

是的,可以使用jQueryattr功能完成。

我们会阅读链接“href”,并以您想要的格式http://myspecificdomain.com?ref=original_link形成一个新字符串,并更新href

<强>步骤

  1. 选择您要操作的链接。它们可以是所有链接,由id标识的单个链接,或class标识的多个链接,或更高级选择器(documentation)。
  2. 阅读href,对其进行操作并进行更新。
  3. 编辑: 更新了代码和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
            });
        });
    

    JSFiddle demo

答案 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”开头的链接的锚点