2012-04-18 57 views
0

我,如下圖所示HTML HREF數:jQuery選擇多個HREF - 動態獲取href的值

<a id="link1" href="http://www.google.com">USA </a>  
<a id="link2" href="http://www.google.com.au">AU </a> 
<a id="link2" href="http://www.google.com.nz">NZ </a> 

我已經jQuery的,如下:

<script> 
    $("a").click(function() { 
     var link = $('a').attr('href'); 
     alert(link); 
     dosomethingforlink(link); 

    }); 
</script> 

基本上,點擊功能上面我想獲得href值<a>標記(點擊),併爲每個鏈接做不同的事情。

或者是否需要爲每個ID創建(#id).click函數?

有人可以幫助我,如果上述可能使用JQuery的?

回答

4

試試這個:

$("a").click(function() { 
    var link = $(this).attr('href'); 
    alert(link); 
    dosomethingforlink(link); 
}); 

我已經改變$('a')$(this)作爲$('a')將得到所有的錨.. $(this)只會得到當前點擊一個。

Here is a quick working demo ..你會看到最後一行是event.preventDefault() - 它阻止了默認動作(即在href之後)發生並允許你的函數執行。 event.preventDefault() docs here

+0

謝謝@ManseUK。 – 2012-04-18 11:28:29

+0

嗨@ManseUK,dosomethingforlink(鏈接)函數使用ActiveXObject。 IE顯示「可能不是安全的消息..」對話框。當使用點擊否現有的得到執行。如果使用點擊「否」,是否可以不做任何事情? – 2012-04-18 12:07:28

1
$("a").click(function (evt) { 
     evt.preventDefault(); 
     var link = $(this).attr('href'); 
     alert(link); 
     dosomethingforlink(link); 
}); 

你應該使用preventDefault()否則你將無法執行進一步的代碼(您的鏈接被點擊並立即更改頁面)

0

ID應該是唯一的,所以不要在多個元素上使用相同的ID。

事情是這樣的,也許:

$("a[id^='link']").on('click', function (e){ 
    e.preventDefault(); 
    switch ($(this).attr('href')) { 
    case 'http://www.google.com' : 
     //do something 
    break; 
    case 'http://www.google.com.au' : 
     //do something 
    break; 
    default: 
     //do something else 

....etc 
    } 
});