检索href属性

时间:2013-06-24 14:25:09

标签: javascript jquery html

我的HTML页面包含:

<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属性。例如,如果我点击“Facebook”,它将显示monlien1,“Twitter”monlien2等。

我试过了这个,但它只显示了第一个链接monlien1的价值,即使我点击了“Twitter”或“Google”。

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

我该怎么做?

2 个答案:

答案 0 :(得分: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将返回完整的网址,而不是href属性的实际值。

答案 1 :(得分: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/