在表格中打印按钮数据属性的值

时间:2011-11-21 09:15:00

标签: jquery

我有一个表格,每行打印一个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)但现在无论按下哪个按钮,都会打印第一行中数据属性的值。

有什么想法吗?谢谢。

4 个答案:

答案 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。