【发布时间】:2025-12-19 09:20:17
【问题描述】:
我的老师给了一些代码来使用,她告诉我们不要触摸以下内容,因为她还没有教给我们:
for ( i = 0; i < matrixOne.length; i++) {
document.getElementsByTagName("td")[i].addEventListener("click", function() {
cellClicked(this);
});
矩阵一定义为:
var matrixOne = document.getElementsByTagName("td");
我需要使cellClicked() 函数工作,我不明白this 在作为参数cellClicked(this); 传递时指的是什么。
在不知道this 代表什么的情况下,我无法完成 cellClicked 函数,因为我现在不知道正在传递什么。有人可以解释一下关键字this 在这里是如何工作的,即它的上下文是如何定义的?
供将来参考:这个问题已解决,this 指的是getElementsByTagName("td")[i],如果从事件侦听器单击单元格,则会通过。
【问题讨论】:
-
您可以迭代集合,而不是
for循环。document.getElementsByTagName("td").forEach(function() { }) -
this binding in event handlers 是它的工作方式。也可以将event作为参数传递,引用event.target获取目标dom节点。我不太清楚你在问什么,或者问题是什么。
-
你说你不明白
this指的是什么,但在下一句中,你说(正确地)它是单元格。我真的不确定你想在这里问什么。 -
@zfrisch 如果您能理解 OP 的具体问题是什么,那么您应该给出答案。我的意思不是讽刺:有时某些人对人们真正想问的问题有更好的洞察力,他们提供答案是有意义的。 (国际海事组织,即使这意味着被否决而被遗忘)。您还应该编辑 OP 的问题以使其更好。
标签: javascript arrays function scope this