我有一个jQuery Datatable,并动态添加行。每行都有一个单元格,其中有一个删除按钮。我的问题是我无法使用按钮删除行,甚至无法定位当前行。
这是我的DataTable代码:
var tab_presta = $("#tableau_presta").DataTable({
"searching": false,
"paging": false,
"ordering": false,
"info": false,
responsive: true,
"language": {
"emptyTable": "No product added to the contract for the moment."
}
});
这是我在提交事件上的每一行上创建按钮的方式:
form2.on('submit', function (event) {
tab_presta.row.add(
[
'<center><button type="button" id="btn_supp' + (++idCount) + '" onclick="alert(this.parentNode)" class="btn btn-xs btn-block btn-danger confirmation">Delete</button></center>'
]
)
.draw( false );
// here I dynamically add an id to each button based on a variable
$('.btn btn-xs btn-block btn-danger confirmation').each(function() {
$(this).attr('id', 'suppr' + idCount);
idCount++;
});
});
这是我单击每个按钮时要删除的代码:
for (j = 0; j <= btn_count; j++) {
$("#tableau_presta").on("click", btn_supp[j], function(){
//tab_presta.row($(this).parents('tr')).remove().draw(false);
var row = $(this).closest("tr");
console.log(row);
});
}
如您所见,我评论了remove()部分,因为它不起作用,因此我试图找到tr
中最接近的$(this) (button)
,但是我没有在结果就是控制台。它是空的,我不明白为什么,因为按钮实际上存在,而且如果我输入onclick"alert(this.id)
,单击该按钮即可获得其ID。
有什么想法吗?
答案 0 :(得分:0)
您无需在循环内绑定click事件。而是使用class
或attribute selector。在这种情况下,选择以id
= ^
开头的btn_supp
的{{1}}的所有元素。
[id^=btn_supp]
$("#tableau_presta").on("click", "[id^=btn_supp]", function() {
$(this).closest("tr").remove();
});