使用javascript从元素';s事件

使用javascript从元素';s事件,javascript,Javascript,我有一个由javascript生成的表。在创建表的tbody时,我将每个单元格的每个元素存储在一个数组中。任何元素都可以通过 let element = elements[r][c]; 其中r和c是tbody的行和列 当单元格上发生事件时,如keyup,我捕获该事件并使用event.target检索触发事件的元素 event_element = event.target; 现在有没有办法找到数组elements中的哪个元素是event\u element 目前,我正在设置element.na

我有一个由javascript生成的表。在创建表的tbody时,我将每个单元格的每个元素存储在一个数组中。任何元素都可以通过

let element = elements[r][c];
其中r和c是tbody的行和列

当单元格上发生事件时,如
keyup
,我捕获该事件并使用
event.target
检索触发事件的元素

event_element = event.target;
现在有没有办法找到数组
elements
中的哪个元素是
event\u element

目前,我正在设置
element.name=element\u rXcX
,然后解析
event.target.name
以查找
r
c
的值,以恢复数组中的实际元素

这还允许我在表中查找元素事件的单元格行和列

我假设在元素数组中定位元素会更好,这可能会让我对DOM有一个深刻的了解

请记住,元素html通常是相同的,但是我通过chrome javascript控制台注意到,如果我记录一个元素并在控制台中单击它,它将突出显示表中正确的单元格


这使我相信我必须能够在元素数组中查找元素

您可以嵌套
数组。按如下方式查找

var arr=[]
arr[0]=[“00”,“01”];
arr[1]=[“10”,“11”];
arr[2]=[“20”,“21”];
函数查找(arr,元素){
var-col;
var行;
var tmpArr=arr.find(函数(subar){
col=子索引(元素);
返回col>-1;
});
行=arr.indexOf(tmpArr);
返回[行,列];
}
console.log(查找(arr,“21”);//[2,1]
您可以尝试:

事件元素.cellIndex
事件元素.parentNode.rowIndex

cellIndex属性返回单元格在表行的单元格集合中的位置。

rowIndex属性返回一行在表的rows集合中的位置。


对于该行,无法保证parentNode。我有一个检查,它让我知道我是否需要parentNode或parentNode.parentNode。但是我有元素,我有一个元素数组。问题是我可以吗?如果可以的话,我如何在元素数组中定位元素?在数组中定位元素是什么意思?元素[event\u element.parentNode.rowIndex][event\u element.cellIndex]不起作用?输入将需要向上移动两个父节点,textNode将向上移动一个。然后你必须找到AD上的行数,对我来说也是可变的。这使得解析元素名称的代码更少,更准确。但是,我有元素,也有元素数组。我想知道我是否可以使用DOM,我想我被DOM搞糊涂了——它看起来像是当我记录元素时,它显示为字符串,但它似乎是作为对象运行的。搜索字符串将导致多个可能的结果。在这种情况下,您可以在创建元素时使用
data-
属性并在其中存储数组坐标,类似这样的内容:
data row=1 data column=4
我只是想。。。我还认为我确实需要为每个元素编码一个唯一的id,以便在二维数组中找到它。在这一点上,我可能会坚持解析id或名称,结果代码更少。我的印象是,您在数组中存储的是实际元素,而不是字符串?在这种情况下,搜索数组应该可以工作。当使用我的答案中的函数时,只需将
event.target
(或
currentTarget
)作为第二个参数,而不是字符串。是的,这完全有效……因此,对于所有搜索darn tbody表行的人来说,跟踪元素,然后通过上面的代码将元素放到实际有效的位置。。。。没有授权或最近的等。。。。