点击DIV内按钮无法获取当前行TD值,返回完整HTML的问题
问题解决:点击Approve按钮获取当前行第一个的数值
你的代码存在两个核心问题:
- 选择器逻辑错误:
$('#MasterList1').closest('tr')试图查找表格的父级<tr>,但表格本身并不在<tr>内部,导致这个选择器无法定位到任何元素,最终customerId会是undefined。 - 未关联点击按钮与对应行:当前代码无法区分点击的是哪一行的按钮,无法精准定位目标行。
修正方案:
1. 修改HTML中的按钮点击事件
将onclick属性改为传递当前按钮的引用:
<input type="button" id="btnApprove" class="btn" value="Approve" runat="server" style="height:24px; width:82px;" tabindex="5" onclick="Approve(this); return false;">
(注:HTML中多个元素使用相同id="btnApprove"不符合规范,建议改为用类名统一控制,比如class="btnApprove")
2. 修正JavaScript函数
通过传入的按钮元素,向上遍历找到所在的<tr>,再获取该行第一个<td>的文本内容:
function Approve(btn) { var customerId = 0; // 从按钮向上定位到所在行,再获取第一个td的纯文本 customerId = $(btn).closest('tr').find('td:eq(0)').text().trim(); console.log(customerId); }
关键说明:
$(btn).closest('tr'):从点击的按钮出发,向上查找最近的<tr>元素,精准锁定按钮所在的行。.find('td:eq(0)'):在目标行中找到索引为0的第一个<td>。.text().trim():获取该<td>的纯文本内容,并去除首尾空白字符,确保得到干净的数值。
内容的提问来源于stack exchange,提问作者Pankaj
相关产品推荐
相关产品推荐

