例如,document.getElementsByClassName("whatever")返回一个元素列表,每个元素都有一个索引(例如,元素 x 是该列表中的 [3])。HTML 元素是否以某种方式将该索引保存在元素内?还是他们“不知道”自己的立场?我对该属性的使用示例:您使用event.targetwhen单击具有“人”类的元素onclick。因此,您想知道它在“人员”列表中的位置。假设它是event.target.classNameIndex. 所以一旦你知道了索引,你就可以在 JavaScript 中做事了。显然,我能想到的简单替代方法是简单地选择 event.target 并在getElementsByClassName列表中搜索它。或者只是为所有元素提供 ID。但避免这种情况会很好。希望你能理解我的问题。:)
2 回答

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

萧十郎
TA贡献1815条经验 获得超13个赞
不,有很多原因。
首先,您正在对内部 DOM 结构进行查询,并且 DOM 树本身可能会在您查询后立即更改。可以添加、移动或删除元素。
此外,两个非常不同的查询可能具有重叠的结果。例如查询 1 可能返回:
[ <div id="a">, <div id="b"> ]
虽然查询 2 可以返回:
[ <div id="b">, <div id="c"> ]
(为简单起见,我将结果表示为数组)
在上面,<div id="b">
考虑到真正无限量的可能查询,元素如何知道其唯一且不变的“索引”,而不是再次提及可能的变量 DOM?
添加回答
举报
0/150
提交
取消