javascript - 单击该元素时如何使用javascript获取HTML集合中元素的索引
问题描述
我的 HTML 文件中有五个按钮。
看到它们是五个,我希望能够打印在 HTML 集合中单击的特定按钮的索引。即点击btn 4
我应该看到3
打印。我尝试将一些我认为可以做到但徒劳无功的 javascript 行放在一起。JS代码是:
if (document.readyState == 'loading') {
document.addEventListener('DOMContentLoaded',execute);
}else{
execute()
}
function execute() {
var btns = document.getElementsByClassName('item');
for (var i = 0; i < btns.length; i++) {
btns[i].addEventListener('click',btnClicked);
}
}
function btnClicked(event,btns) {
var btn = event.currentTarget;
var btnIndex = btns.indexOf(btn)
console.log(btnIndex)
}
<body>
<div class="btn-items">
<button class="item">btn 1 </button>
<button class="item">btn 2 </button>
<button class="item">btn 3</button>
<button class="item">btn 4</button>
<button class="item">btn 5</button>
</div>
</body>
要走的路是什么?
解决方案
为什么不使用
if (document.readyState == 'loading') {
document.addEventListener('DOMContentLoaded',execute);
}else{
execute();
}
function execute() {
const btns = document.getElementsByClassName('item');
for(let i = 0; i < btns.length; i++){
btns[i].addEventListener('click',function(){
console.log('button index : '+i);
});
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button class="item">button 1</button>
<button class="item">button 2</button>
<button class="item">button 3</button>
<script src="script.js"></script>
</body>
</html>
推荐阅读
- java - 如何使用 Spring Data REST 创建自定义 PersistentEntityResourceAssembler
- python - 在 Pandas 中将唯一值从组存储到另一列
- algorithm - 如何计算给定算法(岭回归)的时间复杂度?
- php - LDAP递归地从组中获取用户
- python - 仅当 Python 中的所有 try 语句都成功时才运行语句
- sql - 如何在不创建函数或使用 STRING_SPLIT 函数的情况下拆分分隔字符串
- typescript - 从 JSON 响应初始化地图
- html - 我的想法哪里错了?浏览器缩放简单盒子
- python-3.x - 如何增加 pandastable 的宽度
- java - 如何部署服务器-客户端程序-java