根据Nicholas Zakas的说法,HTMLCollections 非常慢,如果您要重复访问成员,那么将整个内容复制到数组中是一种很好的做法。他似乎声称即使在 HTMLCollections 上使用索引器也会导致集合完全重新查询所有匹配元素的 DOM,就好像集合实际上是一个 linq-esq 表达式树,而不是直接指向元素的指针列表。
我有一种情况,我需要允许对表格进行轻松的键盘导航。每次有人点击其中一个箭头键时,我都需要将焦点从一个表格单元格切换到另一个表格单元格,并相应地添加和删除 CSS 类。我考虑只存储由返回的表格行的 HTMLCollection tableElement.rows
,并通过它访问各个单元格元素。我知道 HTMLCollections 允许您像索引数组一样对它们进行索引,并且我认为这与索引数组一样有效。现在我正在重新考虑事情,但我仍然想了解原因。
我的问题是:当我打电话时,引擎盖下到底发生了什么tableElement.rows[2].cells[6]
?