Javascript - 使用函数来验证 div 的内容是否与其他内容匹配?

标签 javascript html

我正在开发一个小型数学游戏来帮助我自学 JavaScript,但目前我一直在努力让一个函数正常工作。总体思路是,当玩家单击四个可能答案之一时,函数 checkAnswer() 将验证所选 div 的内容是否与正确答案匹配。但是因为有四个不同的 div,所以我找不到一种方法来验证这一点,除非我创建了四个单独的函数,每个函数对应每个 div 的每个按钮。即使这样,需要比较的“正确答案”也会生成并嵌套在另一个函数(generateQuestion)中,因为我的 friend 说,如果我将它与其他变量放在外面,它每次都会创建相同的问题。此检查功能使用什么代码?游戏的所有代码都在 JSbin 中,但这是我遇到问题的 Javascript:

function answerCheck(clicked_id) {
  if (clicked_id == document.getElementById("question").innerHTML) {
    document.getElementById("correct").style.display = "block";
  }

}

http://jsbin.com/nunusarofo/edit?html,css,js,output

谢谢。

最佳答案

我发现 jsBin 代码存在一些问题。

对于选择框,您可以使用带有 answerCheckonclick 处理程序的按钮。游戏开始时,该按钮将替换为答案选项。带有点击处理程序的按钮消失了。

这些通过 onclick 删除按钮:

document.getElementById("box1").innerHTML = answerSelection[0];
document.getElementById("box2").innerHTML = answerSelection[1];
document.getElementById("box3").innerHTML = answerSelection[2];
document.getElementById("box4").innerHTML = answerSelection[3];

这可以通过在 dom 中将 onclick 上移一级并一起删除按钮来解决,因为游戏逻辑无论如何都会这样做:

<div id="box1" class="box"><button id="answer1" onclick="answerCheck(1)"></button></div>
<div id="box2" class="box"><button id="answer2" onclick="answerCheck(2)"></button></div>
<div id="box3" class="box"><button id="answer3" onclick="answerCheck(3)"></button></div>
<div id="box4" class="box"><button id="answer4" onclick="answerCheck(4)"></button></div>

<div id="box1" class="box" onclick="answerCheck(0)"></div>
<div id="box2" class="box" onclick="answerCheck(1)"></div>
<div id="box3" class="box" onclick="answerCheck(2)"></div>
<div id="box4" class="box" onclick="answerCheck(3)"></div>

我还会将 answerCheck 的索引更改为以 0 开头,这也将与代码中的逻辑匹配。

然后,为了验证正确答案,我会将正确答案的索引与点击的索引进行比较以及游戏是否正在运行:

function answerCheck(clicked_id) {
    if(isPlaying && clicked_id == correctIndex) {
        document.getElementById("correct").style.display = "block";
    }      
}

从那里......你应该能够继续你所进行的任何游戏逻辑!

在这里回答:http://jsbin.com/vojeyivobe/1/edit?html,js,console,output

关于Javascript - 使用函数来验证 div 的内容是否与其他内容匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46393854/

相关文章:

javascript - jQuery 无法在 WordPress 网站上运行

javascript - 如何从给定的 html 字符串中删除前导和尾随空格?

Javascript:悬停元素,更改不相关元素中的类

javascript - 将点击处理程序添加到动态生成的内容。如何?

html - 如何在 HTML 中将 ul 居中

html - 为什么 block 元素表现得像行内元素?

javascript - ES6 Let Const block 范围在某些变量的循环内部进行

javascript - while 循环和回调返回不同的结果

jquery - 使用 JQuery 更新 span 标签值

html - 裁剪图像设置为背景而不拉伸(stretch)