使用javascript从元素';s事件
我有一个由javascript生成的表。在创建表的tbody时,我将每个单元格的每个元素存储在一个数组中。任何元素都可以通过使用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
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表行的人来说,跟踪元素,然后通过上面的代码将元素放到实际有效的位置。。。。没有授权或最近的等。。。。