2011-11-21 89 views
0

我有一个使用PHP打印的按钮表。每个按钮在其数据属性中都有不同的值,但是都是一样的。我想要一个特定按钮的数据属性的数据属性的值。这是行不通的:当所有按钮具有相同的ID时,获取按钮数据属性的值

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

上面返回的是第一个按钮的数据属性值,而不是用户点击的那个。

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

任何想法?谢谢 :)。

+0

Richard的答案应该为你做。如果不是,请指出您尝试检索数据属性的上下文。代码中显示的(非工作)代码行在哪里适合您的代码?显示一些(生成的)HTML也无妨。 (并且在页面上没有超过一个元素具有相同的ID。) – nnnnnn

+0

我已经创建了一个jsfiddle:jsfiddle.net/7fkfu/17希望能够帮助解释它。 – ale

回答

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选择元素,这将很重要。)

+0

非常感谢,非常感谢:D。 – ale

0

这是否工作:

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

希望它可以帮助

+0

对不起..不能解决它,但谢谢。请参阅http://jsfiddle.net/7fkfu/17/comments可能只能编辑5分钟(点击此框解雇) – ale

1

如果你是该按钮的点击事件里面那么这应该工作:

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

注意,你真的不该在同一个页面上使用相同的ID不会有多个元素!

+0

感谢您的帮助..没有解决我的问题:(。请参阅http: //jsfiddle.net/7fkfu/16/ – ale

+0

让那个http://jsfiddle.net/7fkfu/17 – ale

相关问题