javascript - 如何从 MouseEvent 对象中获取单击元素的索引号
问题描述
我正在尝试从MouseEvent
对象中获取单击元素的索引。当我去控制台单击事件对象的“路径”属性并将鼠标悬停到第一个数组项时,它会标记实际单击的元素。
我想知道引擎怎么知道点击了哪个?因为 event.path[0] 选择器不包含被点击元素的索引号。
<div id="container">
<div>abc</div>
<div>abc</div>
<div>abc</div>
<div>abc</div>
<div>abc</div>
<div>abc</div>
</div>
jsfiddle:https ://jsfiddle.net/9n3f7mcr/
解决方案
如果您可能希望索引的所有元素具有相同的父级,则可以在的Array#indexOf
父级的子级上使用。event.target
document.addEventListener('click', function (e) {
var target = e.target;
var parent = target.parentNode;
var index = [].indexOf.call(parent.children, target);
console.log("index:", index);
});
<div id="container">
<div>1z</div>
<div>2z</div>
<div>3z</div>
<div>4z</div>
<div>5z</div>
<div>6z</div>
</div>
推荐阅读
- python - 这个嵌套列表理解表达式是如何工作的?
- azure - 创建 3 个 VNET,其中所有流量都通过一个 VNET(中心辐射型)路由
- javascript - Mongo 并不总是返回正确的结果
- google-sheets - 谷歌表格 VLOOKUP 返回多个值
- android - 如何启动多个 FlutterActivity?
- unity3d - 如何从 Blender 中导出 .dae 动画?
- ios - 创建类似于 iOS 联系人的 UI 编辑 UI
- python - 如何创建一组 tkinter 小部件(for 循环)并单独引用它们中的每一个?
- netlogo - 协助 Netlogo 中的节点/链接导航
- tensorflow - 自定义层输出 Keras 的尺寸