2011-10-22 65 views
1

我希望有人可以幫助我......我嘗試抓取一個參數,它保存在html網站的頭部,並將此參數添加到該網站上的所有鏈接都沒有「rel ='gallery'」 - attribut。一些鏈接已經有了其他的GET參數。它看起來像這樣:在鏈接末尾添加變量(只有沒有REL-attr)

<head> 
<script type="text/javascript"> 
    var ParameterNew = "test"; 
</script> 
</head> 
[...] 
Search: <a href="http://google.com">Google</a><br/> 
Social Media: <a href="http://facebook.com?show=start">Facebook</a> 
<br/><br/> 
<a rel="gallery" href="img/1.jpg">Gallery Link 1</a><br/> 
<a rel="gallery" href="img/2.jpg">Gallery Link 2</a><br/> 

所以我嘗試了ParameterNew追加後面的所有鏈接,沒有REL-attribut。

在它必須看起來到底騙這樣的:

<head> 
<script type="text/javascript"> 
    var ParameterNew = "test"; 
</script> 
</head> 
[...] 
Search: <a href="http://google.com?parameter=test">Google</a><br/> 
Social Media: <a href="http://facebook.com?show=start&parameter=test">Facebook</a> 
<br/><br/> 
<a rel="gallery" href="img/1.jpg">Gallery Link 1</a><br/> 
<a rel="gallery" href="img/2.jpg">Gallery Link 2</a><br/> 

我寫了這一個。它只能更換的innerHTML(如爲例):

var links = document.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    if (links[i].target !== "_blank") 
     links[i].innerHTML = 'test'; 
} 

我只是有問題要追加參數......也許有人可以幫忙嗎? thanx

回答

1

這是一個相當簡單的解決方案,考慮到您確切的示例條件。也就是說,它假定你有簡單的鏈接,因此所有需要做的就是檢查在添加參數時使用哪個連接器。如果您的鏈接可以包含鏈接參數,則需要執行一些更復雜的操作,以確定是使用?還是&來追加參數。

var links = document.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    if (links[i].rel != 'gallery') { 
     var href = links[i].href, 
      connector = '?'; 
     if (href && href.match(/\?/)) { 
      connector = '&'; 
     } 
     links[i].href = href + connector + 'parameter=' + ParameterNew; 
    } 
}