2014-03-01 111 views
0

我有很多下載鏈接是爲我的用戶在我的網站中提供的,我希望爲這些鏈接添加特定的參考鏈接。例如:jQuery在鏈接中添加域名

http://rapidgator.net/file/xxxx 

現在我想用jQuery在每個外部鏈接的鏈接前添加我的對象鏈接。我搜索,只發現了jQuery爲attr

jQuery('a[href*="http://"]:not([href*="http://www.mysite.com"])').attr('rel', 'nofollow'); 

但在我的情況下,我想添加我的域名中的鏈接的前面,這樣網址:

<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

其實你就要成功了,你已經可以得到你想要的所有元素,你需要做的是循環他們並更換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前綴

+0

謝謝你,我記住這是非常簡單的,而不是與實際演示困惑錨.. 。謝謝Sari Alalen –

+0

這實際上是我12分鐘後發佈的答案。 – Charlie

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

0

是的,它可以使用jQueryattr函數來完成。

我們將讀取鏈接的'href屬性並以您所需的格式http://myspecificdomain.com?ref=original_link形成一個新字符串並更新href

步驟

  1. 選擇要操作的鏈接。它們可以是所有鏈接,由id標識的單個鏈接或由class標識的多個鏈接,或更高級的選擇器(documentation)。
  2. 閱讀href,操作它並更新它。

編輯:代碼和演示的jsfiddle更新管理不開始鏈接的 'http://'(由薩里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