我有一个使用PHP打印的按钮表。每个按钮在其数据属性中具有不同的值,但执行相同的操作。我想要特定按钮的数据属性的data属性的值。这不起作用:
$(this).find('button').data('myatt')
以上内容返回第一个按钮的数据属性值,而不是用户单击的值。
编辑: jsfiddle来说明:http://jsfiddle.net/7fkfu/17/
有什么想法吗?谢谢你:)。
答案 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 });
希望有所帮助