[英]Use javascript to find an html element which exists in an array of elements from the element's event
我有一个由javascript生成的表格。 创建表的正文时,我将每个单元格的每个元素存储在数组中。 任何元素都可以轻松地通过
let element = elements[r][c];
其中,r和c是tbody的行和列。
当单元上发生事件时,例如keyup
,我捕获了事件并使用event.target
来检索触发该事件的元素。
event_element = event.target;
现在是否可以找到数组elements
中的event_element
elements
是event_element
?
目前,我正在设置element.name = element_rXcX
然后解析event.target.name
来查找r
和c
值以恢复数组中的实际元素。
这也使我能够在表格中找到元素事件的单元格的行和列。
我假设在element数组中定位一个元素会更好,这可能会让我有点了解DOM。
请记住,元素html通常可能是相同的,但是我在chrome javascript控制台中注意到,如果我记录了一个元素并在控制台中单击它,它将突出显示表格中的正确单元格。
这使我相信我必须能够在元素数组中查找元素。
您可以像这样嵌套Array.find
:
var arr = [] arr[0] = ["00", "01"]; arr[1] = ["10", "11"]; arr[2] = ["20", "21"]; function find(arr, element) { var col; var row; var tmpArr = arr.find(function(subArr){ col = subArr.indexOf(element); return col > -1; }); row = arr.indexOf(tmpArr); return [row, col]; } console.log(find(arr, "21")); // [2,1]
请记住,IE不支持array.find
,因此您需要为其添加一个polyfill。
你可以试试:
event_element.cellIndex
和event_element.parentNode.rowIndex
cellIndex属性返回单元格在表行的单元格集合中的位置。 http://www.w3schools.com/jsref/prop_tabledata_cellindex.asp
rowIndex属性返回表在行集合中的行的位置。 http://www.w3schools.com/jsref/prop_tablerow_rowindex.asp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.