Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当使用javascript单击DOM中的多个按钮列表时,是否有方法标识其中一个按钮的索引?_Javascript_Arrays_Dom_Event Listener_Traversal - Fatal编程技术网

当使用javascript单击DOM中的多个按钮列表时,是否有方法标识其中一个按钮的索引?

当使用javascript单击DOM中的多个按钮列表时,是否有方法标识其中一个按钮的索引?,javascript,arrays,dom,event-listener,traversal,Javascript,Arrays,Dom,Event Listener,Traversal,我需要的功能,以提醒点击按钮的索引 var openformbtn=document.querySelectorAll('.show-form'); var formcontainer=document.querySelectorAll('.form-container'); var btnarray = Array.from(openform); openformbtn.addEventListener('click', displayform); function displayform(e

我需要的功能,以提醒点击按钮的索引

var openformbtn=document.querySelectorAll('.show-form');
var formcontainer=document.querySelectorAll('.form-container');
var btnarray = Array.from(openform);
openformbtn.addEventListener('click', displayform);
function displayform(e){
    this.nextElementSibling.style.display='flex';
    var i = btnarray.index(this);
    i.style.display='flex';
}

有不同的方法可以做到这一点

HTML中的
id
为每个按钮指定唯一的
id
,单击按钮时,从事件对象
e
获取
id

id
在JS中传递 将事件侦听器添加到按钮时,将侦听器包装在匿名函数中,并将
id
作为参数传递,例如

openformbtn.addEventListener('click', function(){
  displayform(id)
 });

单击时,它会将单击事件传递给函数,例如:

//我们正在选择所有按钮
const btns=document.queryselectoral(“按钮”);
//我们正在循环浏览选定的按钮。
btn.forEach(btn=>{
//我们正在向按钮添加单击事件。
//(e)代表事件
btn.addEventListener(“单击”,(e)=>{
//e代表事件
//要获取单击的元素,请使用e.target
//document.queryselectoral返回节点列表
//要使用indexOf,我们需要将其设置为数组。
//这就是Array.from()的作用。
常量索引=数组.from(btns).indexOf(e.target);
//现在,我们使用索引调用警报
警报(索引);
});
});
0
1.
2.
3.

4
var i=btnarray.index(本)无效,除非您修改了
数组
原型。查看
id
的定义位置?这会中断
displayForm()
中的
的上下文。也无法将侦听器直接添加到由
querySelectorAll()
返回的集合。您可以在迭代时从UUID函数或数组的索引中获取
id