Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 如何获取已单击按钮的索引?_Javascript_Arrays_Ecmascript 6_Nodelist - Fatal编程技术网

Javascript 如何获取已单击按钮的索引?

Javascript 如何获取已单击按钮的索引?,javascript,arrays,ecmascript-6,nodelist,Javascript,Arrays,Ecmascript 6,Nodelist,我正在制作一个小游戏,你要猜一些国家国旗的名字。我使用querySelectorAll来选择所有输入字段和所有按钮,您必须单击这些按钮才能实际执行猜测代码。我还制作了一个名为flags的对象,并给出了正确的答案。我需要获取我按下的按钮的索引,以将输入值与按钮的索引和flags对象的索引进行比较,因为它们具有相同的索引,以检查输入值是否与标志匹配 我做了一个for循环,循环遍历所有的值,当我按下一个按钮时,它会检查所有的输入,而不仅仅是我点击的输入。我只想让它检查我正在点击的那个 const in

我正在制作一个小游戏,你要猜一些国家国旗的名字。我使用querySelectorAll来选择所有输入字段和所有按钮,您必须单击这些按钮才能实际执行猜测代码。我还制作了一个名为flags的对象,并给出了正确的答案。我需要获取我按下的按钮的索引,以将输入值与按钮的索引和flags对象的索引进行比较,因为它们具有相同的索引,以检查输入值是否与标志匹配

我做了一个for循环,循环遍历所有的值,当我按下一个按钮时,它会检查所有的输入,而不仅仅是我点击的输入。我只想让它检查我正在点击的那个

const inputs = document.querySelectorAll(".input-flag");
const buttons = document.querySelectorAll(".btn");
const btns = Array.from(buttons);

const flags = [
    "belgium",
    "spain",
    "italy",
    "argentina",
    "venezuela",
    "brazil"
];

buttons.forEach((button) => {
    button.addEventListener("click", (e) => {

        for(let i = 0; i < btns.length; i++) {

            if(btns[i].previousElementSibling.value === flags[i]) {
                console.log("correct");
            } else {
                console.log("incorrect");
            }
        }


    })
});
所以当我点击一个按钮,三个输入字段是正确的,三个是不正确的,它记录了3个更正和3个不正确。我已经找了好几个小时了,但找不到解决办法。我不知道我是否解释得很好,我是个初学者:


我想单击一个按钮,只需检查其相应的输入字段值,假设按钮、输入和标志的顺序相同:

buttons.forEachbutton,索引=>{ button.AddEventListener单击,=>{ 常量输入=输入[索引]; 常量标志=标志[索引]; 如果input.value==标志{ console.logcorrect; }否则{ console.logincorrect; } } };
forEachbutton,i=>{…}并移除内部循环。如果可以,请提供按钮和输入的html标记,以便我们可以测试示例以搜索解决方案。