当所有按钮具有相同的ID时,获取按钮的数据属性的值

时间:2011-11-21 09:52:20

标签: jquery

我有一个使用PHP打印的按钮表。每个按钮在其数据属性中具有不同的值,但执行相同的操作。我想要特定按钮的数据属性的data属性的值。这不起作用:

$(this).find('button').data('myatt')

以上内容返回第一个按钮的数据属性值,而不是用户单击的值。

编辑: jsfiddle来说明:http://jsfiddle.net/7fkfu/17/

有什么想法吗?谢谢你:)。

3 个答案:

答案 0 :(得分:3)

好的,问题在于您尝试使用.on方法的方式:您试图说on().click(),但您不想要两者。 .on()的第一个参数是一个字符串,表示您要处理的事件。然后是一个选择器,一个可选的数据参数,然后最后你把实际的处理程序。 (还有一个事件地图格式 - 请参阅.on() doco。)同样在小提琴中检查按钮[rel=modal],但在html中它是rel=test。请尝试以下方法:

$(function() {
  $('#mytable').on('click','tr button[rel=test]',function() {
     alert($(this).data('mydata'));
  });
});

有效的更新小提琴:http://jsfiddle.net/7fkfu/19/

此外,不要创建具有相同ID的多个元素。 (在这种情况下不会影响您的代码,但实际上它是无效的HTML,如果您真的尝试按ID选择元素,那么这很重要。)

答案 1 :(得分:1)

如果你在按钮的click事件中,那么这应该有效:

$(this).data('myatt');

请注意,您在同一页面上不应该有多个具有相同ID的元素!

答案 2 :(得分:0)

这是否有效:

$("#yourButtonId").click(function() {
 alert($(this).val());
  //or something else that you want
});

希望有所帮助