如何从与我按下的按钮位于同一行的单元格中获取值

Posted

技术标签:

【中文标题】如何从与我按下的按钮位于同一行的单元格中获取值【英文标题】:How can I get the value from a cell which is in the same row as the button I am pressing 【发布时间】:2021-10-01 03:16:11 【问题描述】:

所以当我按下同一行的按钮时,我试图获取 USUARIO 列的值: For example, if I was about to press the first button, it should give me 3 as a result

在我的代码中我有这个:

function(response) 
                        var t = "";
                        var tr = "";
                        tr += "<thead>";
                        tr += "<th>USUARIO</th>";
                        tr += "<th>FECHA INICIO</th>";
                        tr += "<th>FECHA FIN</th>";
                        tr += "<th>TIPO EMERGENCIA</th>";
                        tr += "<th>LOCALIZACIÓN</th>";
                        tr += "<th>DESACTIVADOR</th>";
                        tr += "</thead>";
                        tr +=  '<tbody id="tbody' +  i +">';
                        tr += '<td class= "OIDCELL">' + response[i].usuario_oid + "</td>";
                        tr += "<td>" + response[i].fechainicio + "</td>";
                        tr += "<td>" + response[i].fechafin + "</td>";
                        tr += "<td>" + response[i].tipoemergencia_tipo
                                + "</td>";
                        tr += "<td>" + enlace + "</td>";
                        if (response[i].desactivador == 0)
                            tr += '<td> <button type="button" onclick="cambiarDesactivador()">Desactivar</button></td>';
                        else
                            tr += "<td>" + response[i].desactivador + "</td>";
                        
                        
                        tr += "</tr>";
                        tr += "</tbody>";
                        
                        t += tr;
                        document.getElementById("historicoUser").innerhtml += t;
                    

那么我可以通过哪种方式获取按下按钮的同一行的 USUARIO 列的值?

提前谢谢你!

【问题讨论】:

欢迎您!你能在你的代码中添加解释性文本吗?您的代码未注释,因此您无法让回答者轻松了解您所做的事情、明确了解的内容以及不了解的内容。 【参考方案1】:

您可以直接将您在列中显示的值 response[i].usuario_oid 传递给按钮的 onClick 函数

示例:cambiarDesactivador(response[i].usuario_oid)

【讨论】:

【参考方案2】:

代码上的一些cmets,有很多错误:

    function(response) ... 不是有效的函数声明或表达式 t 变量似乎是多余的 不要混用双引号和单引号的语义。 javascript 使用单引号,HTML 使用双引号(见下文) += 效率低下,只需创建一个字符串并将其分配给 tr,例如:
tr = '<thead>' +
     '<th>USUARIO</th>' +
     '<th>FECHA INICIO</th>' +
     ...
     '<tbody id="tbody' +  i + '">' +
     ...

要获取被点击的按钮所在的行,获取对该按钮的引用,然后使用closest 获取 tr 祖先。 Table rows 有一个 cells 集合,第一个单元格是索引 0,等等。

所以从监听器传递 this,上到行然后获取第一个单元格的内容,例如

function getFirstCellContent(el) 
  let row = el.closest('tr');
  console.log(row.cells[0].textContent);
table 
 border-left: 1px solid #999999;
 border-top: 1px solid #999999;
 border-collapse: collapse;

th, td 
 border-right: 1px solid #999999;
 border-bottom: 1px solid #999999;
<table>
  <tr><td>One<td><button onclick="getFirstCellContent(this)">Click me</button>
  <tr><td>Two<td><button onclick="getFirstCellContent(this)">Click me</button>
  <tr><td>Three<td><button onclick="getFirstCellContent(this)">Click me</button>
</table>

【讨论】:

以上是关于如何从与我按下的按钮位于同一行的单元格中获取值的主要内容,如果未能解决你的问题,请参考以下文章

如何使表格视图单元格中的按钮工作[重复]

如何访问 Angular Material Data-Table 中同一行的不同单元格中的单元格的值?

如果满足 for 循环中的条件,则在同一行中的其他单元格中获取值

AG-Grid:如何根据同一行中其他单元格中的值更改单元格的颜色

如何让按钮根据按下的行显示不同的视频?

自定义单元格中的多个按钮。单击了哪一行中的哪个按钮?