我有一个表格,每行打印一个HTML按钮。 PHP用于为每个按钮在我定义的数据属性中提供可能不同的值。
打印完整个表后,我想使用一些JQuery在用户点击时打印出按钮的数据属性值。
每个按钮如下所示:
<button rel="test" data-myatt="hello world" id="myid">Click Me</button>
到目前为止我的JQuery是这样的:
$(document).ready(function () {
$('#my_table').on('tr button[rel=test]').click(function() {
alert($('#myid').data('myatt'));
});
});
但是当单击按钮时,我只是返回'undefined'。
编辑:未定义的错误消失了(感谢@Shion)但现在无论按下哪个按钮,都会打印第一行中数据属性的值。
有什么想法吗?谢谢。
答案 0 :(得分:3)
试
<button rel="test" data_myatt="hello world" id="myid">Click Me</button>
和
$(document).ready(function () {
$('#my_table').on('tr button[rel=test]').click(function() {
alert($('#myid').attr('data_myatt'));
});
});
答案 1 :(得分:3)
这可能与你的身份有关。
在普通的HTML页面上,任何ID都应该只定义一次。 如果所有按钮共享相同的ID,则可能存在一些问题。就像你提到的那个。
做这样的事情:
$(document).ready(function () {
$('#my_table').on('tr button[rel=test]').click(function() {
alert($(this).find('button').data('myatt'));
});
});
答案 2 :(得分:1)
它刚出现在我的脑海里。你为什么要使用jQuery的On-method?
这个小提琴效果很好:http://jsfiddle.net/esVnV/
要求是否有所不同?
正如我刚才所见:你确定你正确使用On-Method吗?有关更多帮助,请参阅jQuery-Docs:http://api.jquery.com/on/
答案 3 :(得分:0)
我不确定这会导致您的问题,但看起来您的按钮都具有相同的ID -
<button rel="test" data-myatt="hello world" id="myid">Click Me</button>
在HTML文档中,ID应该是唯一的。如果可以,可以通过php为您的按钮生成唯一ID。