点击表格行内按钮时如何获取同一行USUARIO列的单元格值
实现方案
你可以通过以下两种常用方案实现需求:
方案1:直接传值(最简便)
在拼接按钮点击事件时,直接把当前行的USUARIO值作为参数传入方法即可:
- 修改按钮拼接代码,把
response[i].usuario_oid作为参数传入cambiarDesactivador:
// 把原来的按钮行替换成下面的代码 tr += '<td> <button type="button" onclick="cambiarDesactivador(\'' + response[i].usuario_oid + '\')">Desactivar</button></td>';
- 对应的接收方法修改为:
function cambiarDesactivador(usuarioOid) { // 这里的usuarioOid就是你需要的当前行USUARIO列取值 console.log(usuarioOid) // 后续业务逻辑写在这里 }
方案2:通过DOM层级查找取值
如果你不想直接传值,可以通过点击的按钮向上查找父级行,再取对应单元格的内容:
- 修改按钮拼接代码,把当前按钮实例
this作为参数传入:
tr += '<td> <button type="button" onclick="cambiarDesactivador(this)">Desactivar</button></td>';
- 对应的接收方法修改为:
function cambiarDesactivador(clickBtn) { // 查找按钮所在的行元素 const currentTr = clickBtn.closest('tr') // 查找当前行里USUARIO列的单元格,通过你已经设置的类名OIDCELL精准匹配 const usuarioOid = currentTr.querySelector('.OIDCELL').textContent // 拿到取值 console.log(usuarioOid) // 后续业务逻辑写在这里 }
注意事项
你现有代码拼接表格时,<tbody>之后没有写<tr>标签就直接拼接<td>,属于DOM结构错误,会影响方案2的查找逻辑,需要补全<tr>开头:
tr += '<tbody id="tbody' + i +'">'; tr += '<tr>'; // 补上这行 tr += '<td class= "OIDCELL">' + response[i].usuario_oid + "</td>"; // 剩下的原有代码不变
内容的提问来源于stack exchange,提问作者Diego77Blaze
相关产品推荐
相关产品推荐

