gpt4 book ai didi

javascript - 如何在addEventListener中传递触发元素?

转载 作者:太空宇宙 更新时间:2023-11-04 16:13:25 25 4
gpt4 key购买 nike

我有这个代码:

window.onload = function(){ 
var player=0;
for(var i="0";i<"9";i++)
document.getElementById(i).addEventListener("click",function(){oxfunc(document.getElementById(i))});
function oxfunc(s){
s.innerHTML="!";
}

元素的ID编号为0到8。我想知道点击了哪个元素。上面的代码报错:

tictactoe.js:8 Uncaught TypeError: Cannot set property 'innerHTML' of null
at oxfunc (tictactoe.js:8)
at HTMLTableCellElement.<anonymous> (tictactoe.js:5)
oxfunc @ tictactoe.js:8
(anonymous) @ tictactoe.js:5

最佳答案

触发元素将是函数中的 this,因此您不需要使用您的方法。

addEventListener("load", function() {
var player = 0;
for (var i = 0; i < 9; i++) {
document.getElementById(i).addEventListener("click", function() {
oxfunc(this);
});
}

function oxfunc(s) {
s.innerHTML = "!";
}
});

如果您想使用您的方法,请参阅 JavaScript closure inside loops – simple practical example .

关于javascript - 如何在addEventListener中传递触发元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41270540/

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