[英]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.