jquery div点击数据

时间:2013-03-19 08:07:07

标签: jquery

这是我的代码

<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);
    });

});

My code on JsFiddle

为什么当我点击测试工作但我点击Test1时不起作用?

先谢谢了。 Aesis。

3 个答案:

答案 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);
});

SEE THE WORKING DEMO

注意:

如果对同一页面上的多个元素使用相同的id,会发生什么情况,当它首先获得它们时,它会起作用,而其他元素会被忽略。那就是它失败的地方。