gpt4 book ai didi

javascript - Onclick 在 tr 上没有按预期工作

转载 作者:行者123 更新时间:2023-11-30 12:37:49 25 4
gpt4 key购买 nike

我试图让 onclick 事件适用于表格的所有行。但是,无论我单击哪一行,该事件似乎只在最后一个 tr 时触发。我做了一个简单的例子来说明 JSFiddle 上的问题.

HTML:

<table>
<tr>
<td>Test</td>
<td>Test2</td>
</tr>
<tr>
<td>Test</td>
<td>Test2</td>
</tr>
<tr>
<td>Test</td>
<td>Test2</td>
</tr>
<tr>
<td>Test</td>
<td>Test2</td>
</tr>
</table>

Javascript:

var table = document.getElementsByTagName( "table" )[0];
for( var contador = 0; contador < table.getElementsByTagName( "tr" ).length; contador++ ){
var line = table.getElementsByTagName( "tr" )[contador];
line.onclick = function() {
line.innerHTML = "Row clicked";
};
}

最佳答案

这是一个作用域问题,for block 不会创建新的作用域,所以最后一个值会覆盖以前的值,您可以使用自调用函数:

(function (line) {
line.onclick = function () {
//line.innerHTML = "Row clicked";
line.cells[0].textContent = "Row clicked";
};
})(table.getElementsByTagName("tr")[contador]);

http://jsfiddle.net/tx3s580a/

关于javascript - Onclick 在 tr 上没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25520496/

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