我在容器中有一组固定的元素(比如 30 个)。现在,当单击一个元素时,我想找出它在该容器中的索引。
我知道我能做什么:
- 在具有各自索引的所有元素上设置点击处理程序,以便在单击它们时他们已经从闭包范围中知道它们的索引
优点:可能是最快的方法
缺点:更多事件处理程序->更多对象->更多内存 - 遍历所有子元素,将每个元素与单击的元素进行比较并计算索引直到达到它
优点:有效
缺点:您必须遍历列表并进行比较(较慢) - (在 SO 上提出)使用 previousSibling 属性返回到 null 计算沿途的每个孩子以确定您的索引
优点:工作,可能比选项 2 好一点,因为您直接从孩子开始
缺点:仍在遍历元素 - (我想到的解决方案)由于有一个固定的集合,我们可以在每个元素上设置“tabindex”属性(在html中或通过JS),当点击元素时,我们只需检查元素的tabindex属性
优点:应该只是与选项 1 一样
快
那么就性能(速度和内存)而言,以上哪一个是最好的方法,或者有更好的方法吗?
提前非常感谢,非常感谢。