0

我的 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+'');
}

我怎样才能做到这一点?

4

2 回答 2

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')is obj.getAttribute('href')obj.href将返回一个完整的 URL,而不是 href 属性的实际值。

于 2013-06-24T14:27:19.403 回答
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/ 。

于 2013-06-24T14:28:51.933 回答