javascript - 如何获取单击按钮的索引?

标签 javascript arrays ecmascript-6 nodelist

我正在创建一个问答游戏,您必须猜测一些国家/地区国旗的名称。我使用 querySelectorAll 选择所有输入字段以及您必须单击才能实际执行 GUESS 代码的所有按钮。我还制作了一个名为“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.forEach((button, index) => {
    button.addEventListener("click", () => {
        const input = inputs[index];
        const flag = flags[index];
        if (input.value == flag) {
            console.log("correct");
        } else {
            console.log("incorrect");
        }
    })
});

关于javascript - 如何获取单击按钮的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57366248/

相关文章:

javascript - Google 的网站翻译器和通过 AJAX 加载的内容

javascript - 循环遍历 xml2js 解析的 json 项时无法访问 xml 属性

c - 在 C 中输入数组并检查是否有相同的值

c - 这段代码有什么错误?

javascript - 将大量字符串存储到 IndexedDB 中

javascript - 无法删除动态添加的脚本

javascript - 代码编译后如何使用nodemon?

javascript - ES6 : Multiple let assignment inside for-loop in 'strict mode'

javascript - 使用 Typescript 异步进行 Mocha API 测试

javascript - ES2015 类变量作用域