尝试使用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);
});
请帮忙 感谢
答案 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(){ [...]