这是我的代码
<a href="#" id="ref" data-post="5">Test<i class="icon-remove"></i></a>
<a href="#" id="ref" data-post="1">Test1<i class="icon-remove"></i></a>
jQuery的:
$(document).ready(function() {
$('#ref').on('click', function(e) {
var post_id = $(this).data('post');
e.preventDefault();
alert(post_id);
});
});
为什么当我点击测试工作但我点击Test1时不起作用?
先谢谢了。 Aesis。
答案 0 :(得分:4)
每个DOM元素的ID必须唯一。
因此,请尝试为可行的元素添加class
。
示例强>
<强> HTML 强>
<a href="#" class="ref" data-post="5">Test<i class="icon-remove"></i></a>
<a href="#" class="ref" data-post="1">Test1<i class="icon-remove"></i></a>
<强>的jQuery 强>
$('.ref').on('click', function(e)
{
var post_id = $(this).data('post');
e.preventDefault();
alert(post_id);
});
答案 1 :(得分:1)
ID应该是唯一的,如果要使用相同的标识符,请将其更改为类。
如果您将id="ref"
更改为class="ref"
,请选择$('.ref')
它将会正常工作
答案 2 :(得分:1)
相反,将相同的多个ID设置为无效尝试将id属性更改为class:
<a href="#" class="ref" data-post="5">Test<i class="icon-remove"></i></a>
<a href="#" class="ref" data-post="1">Test1<i class="icon-remove"></i></a>
使用这个jQuery:
$('.ref').on('click', function(e) {
var post_id = $(this).data('post');
e.preventDefault();
alert(post_id);
});
注意:
如果对同一页面上的多个元素使用相同的id,会发生什么情况,当它首先获得它们时,它会起作用,而其他元素会被忽略。那就是它失败的地方。