无法获取数据属性值

时间:2014-05-30 06:35:44

标签: php jquery

尝试使用foreach从动态创建的表中获取数据属性。目前我只获取第一行的值数据属性serviceid。

这是我的PHP代码:

<?php foreach ($service_arr as $service) {?>
<tr class="odd gradeX">
<td><button id="delete_btn" type="button"    
data-serviceid="<?=$service->service_id?>"  class="btn btn-default" data-toggle="modal" 
data-target="#ServicesDeleteModal">Delete</button></td>
</tr>
<?php }?>

我想从表中获取服务的值。目前,如果我在foreach循环中生成了三行,则仅获取第一行的serviceid(<tr>)。为什么会这样?

Jquery代码:

$('#delete_btn').click(function(){

var service_id = $(this).attr("data-serviceid");
      console.log(service_id);
});

请帮忙 感谢

2 个答案:

答案 0 :(得分:3)

您有重复的ID。 id选择器仅将click绑定到匹配DOM中的第一个元素。您还应该使用.data()来获取设置数据属性。并确保在DOM准备好时将click事件绑定。像这样的东西:

$(function(){$('.btn.btn-default').click(function(){
   var service_id = $(this).data("serviceid");
   console.log(service_id);
});});

答案 1 :(得分:1)

您生成的按钮的问题是它们都具有相同的id属性。
一个&#34; id&#34;应该是独特的!

然而,几个标签可以具有相同的&#34;类&#34;属性;

您可以替换

<td><button id="delete_btn" type="button"  [...]

通过

<td><button class="delete_btn" type="button"  [....]

并改变你的jQuery选择器:

$('.delete_btn').click(function(){ [...]