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