gpt4 book ai didi

javascript - 使用 Javascript 通过单击按钮获取表格单元格元素

转载 作者:行者123 更新时间:2023-11-28 19:01:47 25 4
gpt4 key购买 nike

假设我有一个如下表: enter image description here

该表是使用 PHP 生成的。更新按钮应启动两个界面之一,具体取决于报告类型。我遇到的问题是让每个更新按钮仅对应于其特定行中的报告类型。我已经用以下代码尝试过:

<table id="reportTbl" border="1" style="width:100%">
<tr>
<th>Report</th>
<th>Data</th>
<th>Update</th>
</tr>
<tr>
<td>Encrypted</td>
<td>Image</td>
<td><input type="submit" class="tbl_Update" value="Update" onclick="runPop();"></td>
</tr>
<tr>
<td>Unencrypted</td>
<td>Document</td>
<td><input type="submit" class="tbl_Update" value="Update" onclick="runPop();"></td>
</tr>
</table>

function runPop() {
var pop = new myPop();
var cells = document.getElementById('reportTbl').getElementsByTagName('td');
for (i = 0; i < cells.length;) {
var report = document.getElementById('reportTbl').getElementsByTagName('td')[i].innerHTML;
pop.popOut(report);
console.log(report);
i += 3;
}
}

myPopout() 表示处理两个接口(interface)的类,它通过检查报表类型来实现此目的。

上面代码的问题是,当我单击按钮时,两个界面都会打开,这一定是由于循环造成的。我该如何解决这个问题?

最佳答案

您需要将单击的按钮引用传递给 runPop,然后使用它来获取对 tr 元素的引用,并使用它可以获取第一个 tr

<td><input type="submit" class="tbl_Update" value="Update" onclick="runPop(this);"></td>

然后

function runPop(el) {
var report = el.parentNode.parentNode.cells[0].innerHTML;
var pop = new myPop();
pop.popOut(report);
console.log(report);
}

关于javascript - 使用 Javascript 通过单击按钮获取表格单元格元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32377250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com