如何在jQuery/JavaScript中单击获得行id?
我有一个充满动态数据的表。最后一列有一个按钮,单击该按钮时,我希望将行id传递给JS函数。 我需要id,因为我正在执行一个POST Ajax请求,如果成功,我希望获取响应数据并用新数据更新所选行 这是插入新行时要执行的操作:如何在jQuery/JavaScript中单击获得行id?,javascript,php,jquery,datatable,datatables,Javascript,Php,Jquery,Datatable,Datatables,我有一个充满动态数据的表。最后一列有一个按钮,单击该按钮时,我希望将行id传递给JS函数。 我需要id,因为我正在执行一个POST Ajax请求,如果成功,我希望获取响应数据并用新数据更新所选行 这是插入新行时要执行的操作: var rowNode = myTable.row.add([1,2,3,4,5,6,7,8]).draw(); 但是,如何获取行ID并用响应数据更新它呢 编辑。数据表: <table id="myTable" class="displ
var rowNode = myTable.row.add([1,2,3,4,5,6,7,8]).draw();
但是,如何获取行ID并用响应数据更新它呢
编辑。数据表:
<table id="myTable" class="display compact" cellspacing="0" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Reg</th>
<th>Edit</th>
</tr>
</thead>
<tbody>
<?php foreach (get_all_customers_list() as $user) { ?>
<tr>
<td>
<b> <?php echo $user["recipient_name"]; ?></b>
</td>
<td>
<?php echo $user["registration_date"]; ?>
</td>
<td>
<button type="button" id="button_edit" onclick='edit_customer_request(<?php echo json_encode($user); ?>)' value="<?php echo $user; ?>" name="edit_customer">Editt</button>
</td>
</tr>
<?php }?>
</tbody>
</table>
名称
规则
编辑
因为您只想获取单击的行编辑按钮的行id
。您只需使用table.row
函数并传递单击按钮的实际tr
演示(显示存储为名称的实际id
(1,2)
var-table=$('#myTable')。数据表({})
//在此处编辑客户
功能编辑客户请求(此){
//获取实际的表ID
var row=$(_this).parents('tr')[0];
//数据表行id
console.log(table.row(row.data()[0]);
}
名称
规则
编辑
1.
老虎的废话
编辑
tr>
2.
废话尼克松
编辑
这是我的简单答案:
var table = $('#table-values');
$('#table-values').on( 'click', 'tr', function(){
var id = this.id;
alert( 'Clicked row id '+id );
});
简单。:) 请为您的数据表添加一个最小的可复制示例。@Alwayshelving就是这样。我真的不知道还需要添加什么,因为这不像是一个bug,我不知道为什么代码会有不同的行为,但我甚至不知道如何处理它。你的新id出现在哪里?它在按钮里吗?为了澄清您是否希望获取单击所在行的id
?@Alwayshelving是的,我基本上希望获得所选行的id(使用按钮,我不单击行)并将其传递给函数。我需要行ID,以便我知道以后更新哪一行,@AlwayShelving知道怎么做吗?谢谢,它可以工作!我怎样才能真正更新那一行?@B.S.很高兴听到这个消息。对于更新,如果ajax成功,我将重新修复。您需要删除该行并使用行。使用索引添加-还需要动态添加编辑按钮。@B.S.您也可以更新该行。对但是您需要使用jQuery.append
或.html
函数。理想情况下,如果一个数据是动态添加的,那么我将删除该行并添加带有该数据的新行。有趣!我不知道我实际上可以使用.html
,它用新数据重置元素。但是,最困难的部分是使用您先前发布的rowindex
对特定行执行.html()。@B.S.当然。您需要像这样传递该特定行的索引,其中包含有关ajax成功的新数据<代码>表.row(rowindex).data(newData.draw()代码>