You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

动态生成表格行点击按钮无法获取对应RecId值的问题排查

问题解决:动态表格行点击按钮获取对应行数据

问题原因

你遇到的问题和事件委托的#position-order tbody无关,核心是重复使用ID导致的选择器错误:动态生成的每行都用了id="recid",但HTML规范要求ID必须唯一,jQuery的$('#recid')只会返回页面中第一个匹配该ID的元素,所以不管点击哪行,都会拿到第一行的recid值。

修复步骤

  1. 修正HTML结构:把重复的id="recid"改为class="recid",保留隐藏样式:
<tr class="ordertr table-bordered">
<td class="recid d-none"><?=$row['RecId']?></td>
<td class="ps-lg-3">
<ul>
<li><button class="editingST">&#9998;</button></li>
<li><button class="towork">🛠</button></li>
</ul>
</td>
</tr>

补充:如果#editingST也是每行都存在,同样要改成class,避免重复ID的问题

  1. 调整JS逻辑:点击按钮时,基于当前按钮定位到所在行的recid元素,而非全局查找:
$("#position-order tbody").on('click', '.towork', function(){
 $.ajax({
type: "POST",
url: '/towork.php',
data: {recid: $(this).closest('tr').find('.recid').text()}
 });
return false;
});

这里用$(this).closest('tr')找到当前按钮所在的表格行,再通过.find('.recid')定位到该行的recid元素,就能获取到对应行的正确值。

内容的提问来源于stack exchange,提问作者kopetan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:43:37