2013-06-24 135 views
0

我的HTML頁面包含:檢索href屬性

<a id="show" href="monlien1" onclick="show()"> Facebook</a> 
<a id="show" href="monlien2" onclick="show()"> Twitter</a> 
<a id="show" href="monlien3" onclick="show()"> Google</a> 

我想告訴每個點擊href屬性。例如,如果我點擊「臉譜」,它會顯示monlien1,在「推特」 monlien2

我試過,但即使我點擊「推特這表明第一個鏈接,monlien1才值, 「或」Google「。

function show(){ 
    var lien=$('#show').attr('href'); 
    alert(''+lien+''); 
} 

我該怎麼做?

+6

您不能有多個具有相同ID的元素。 '$('#show')'將始終選擇具有該ID的* first *元素。 –

+4

ID必須是唯一的 – Ani

+0

做一件事情,把你的href值放在價值標籤內,並用作Facebook

回答

4

開始使用類(你不應該在同一ID多次有,它會導致一些問題)還,在this作爲參數傳遞:

<a class="show" href="monlien1" onclick="show(this)"> Facebook</a> 
<a class="show" href="monlien2" onclick="show(this)"> Twitter</a> 
<a class="show" href="monlien3" onclick="show(this)"> Google</a> 

function show(obj) { 
    var lien = obj.href; 
    alert(''+lien+''); 
} 

編輯:感謝@FelixKling - 相當於$('#show').attr('href')obj.getAttribute('href')obj.href將返回一個完整的URL而不是href屬性的實際值。

+0

+1使用純js。如果你能幫助人們理解jQuery構建的是什麼,它是一個很好的學習工具。另外 - 檢查你的報價。 'alert(''+ lien +'')'本質上是做'alert(留置權)';' – sircapsalot

+0

@sircapsalot - 是的,這些報價本質上是無用的,除非OP只是將它們用作佔位符,並計劃在稍後添加實際的消息。 – tymeJV

+2

FWIW,相當於$('#show')。attr('href')'是'obj.getAttribute('href')'。 'obj.href'將返回一個完整的URL,而不是'href' *屬性*的實際值。只是指出,也許OP甚至希望完整的網址:) –

0

您不能有多個具有相同ID的元素。 $('#show')將始終選擇帶有該ID的第一個元素。

給元素的類,並使用jQuery事件處理程序綁定:

<a class="show" href="monlien1"> Facebook</a> 
<a class="show" href="monlien2"> Twitter</a> 
<a class="show" href="monlien3"> Google</a> 

$('.show').click(function() { 
    alert($(this).attr('href')); 
}); 

瞭解jQuery和事件處理:http://learn.jquery.com/events/