2012-02-24 27 views
1

我有這樣一個鏈接:動態鏈接製作和純JavaScript

<a href="http://www.example.com/">test</a> 

和JavaScript變量:

var t='this'; 

我怎樣才能讓鏈路上的點擊使用純JavaScript去http://www.example.com/'+this

(使擊可以有變量t在最後一個動態的URL)

+0

可能重複的[跨瀏覽器改變的A代碼HREF](http://stackoverflow.com/questions/4632091/cross-browser-change-an-a-tags-href) – 2012-02-24 17:01:07

+0

我除去jQuery標籤,因爲它似乎你想要一個解決方案不涉及任何庫。如果你想使用jQuery,只要將它回滾一下,儘管你也會發現jQuery也存在這樣一個問題。 – 2012-02-24 17:02:20

回答

2

你可以提供你的錨的ID:

<a href="http://www.example.com/" id="mylink">test</a> 

然後:

var t = 'this'; 
document.getElementById('mylink').onclick = function() { 
    window.location.href = this.href + t; 
    return false; 
}; 

明顯如果您將此腳本放入<head>部分,則可能需要等待DOM準備就緒,然後才能嘗試附加點擊處理程序:

window.onload = function() { 
    document.getElementById('mylink').onclick = function() { 
     window.location.href = this.href + t; 
     return false; 
    }; 
}; 

如果您不能修改DOM提供一個唯一的ID,以你的錨,你可以使用document.getElementsByTagName方法,該方法將返回與DOM中的給定標籤的所有元素的數組,然後你將通過具有循環他們並將onclick處理程序附加到您的錨點。爲了在您可能擁有的所有鏈接之間識別它,您必須使用其innerHTML文本或當前的href屬性。

+0

Hei Darin,這沒關係,但每次點擊鏈接時,它都會將鏈接添加到鏈接中,所以如果我點擊兩次,它會轉到http://www.example.com/thisthis...這是正常的? – David19801 2012-02-24 17:30:14

+0

@ David19801,通常當你點擊鏈接時,你被重定向到一個不同的頁面,那麼你怎麼能點擊這個鏈接兩次? – 2012-02-24 17:31:38

+0

點擊,回去,再次點擊...但我真的希望它能用鼠標中鍵在新窗口中打開鏈接...任何想法? – David19801 2012-02-24 17:43:42

0

基於達林孤獨,這打開一個新的窗口,不會修改原來的;

window.onload = function() { 
    document.getElementById('mylink').onclick = function() { 
     window.open(this.href + t); 
     return false; 
    }; 
};