我的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+'');
}
我该怎么做?
答案 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/。