HTML 元素是否具有 DOM 的“隐藏索引”?

例如,document.getElementsByClassName("whatever")返回一个元素列表,每个元素都有一个索引(例如,元素 x 是该列表中的 [3])。HTML 元素是否以某种方式将该索引保存在元素内?还是他们“不知道”自己的立场?

我对该属性的使用示例:

您使用event.targetwhen单击具有“人”类的元素onclick。因此,您想知道它在“人员”列表中的位置。假设它是event.target.classNameIndex. 所以一旦你知道了索引,你就可以在 JavaScript 中做事了。

显然,我能想到的简单替代方法是简单地选择 event.target 并在getElementsByClassName列表中搜索它。或者只是为所有元素提供 ID。但避免这种情况会很好。

希望你能理解我的问题。:)


大话西游666
浏览 157回答 2
2回答

缥缈止盈

不元素是动态或静态生成的,并且在显示后独立于对它们所做的一切。有纯 javascript 方法可以获取类数组结构中元素的索引,但它们很可能取决于element.onClick函数的使用并通过某种选择器将它们与其他元素配对。

萧十郎

不,有很多原因。首先,您正在对内部 DOM 结构进行查询,并且 DOM 树本身可能会在您查询后立即更改。可以添加、移动或删除元素。此外,两个非常不同的查询可能具有重叠的结果。例如查询 1 可能返回:[&nbsp;<div&nbsp;id="a">,&nbsp;<div&nbsp;id="b">&nbsp;]虽然查询 2 可以返回:[&nbsp;<div&nbsp;id="b">,&nbsp;<div&nbsp;id="c">&nbsp;](为简单起见,我将结果表示为数组)在上面,<div id="b">考虑到真正无限量的可能查询,元素如何知道其唯一且不变的“索引”,而不是再次提及可能的变量 DOM?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript