信息发布→ 登录 注册 退出

使用 J*aScript 获取 Trivia 游戏中按钮索引并校验答案

发布时间:2025-10-18

点击量:

使用 javascript 获取 trivia 游戏中按钮索引并校验答案

本文旨在帮助开发者解决 Trivia 游戏中如何获取被点击按钮的索引,并将其与正确答案进行比较的问题。通过监听按钮的点击事件,利用事件对象获取被点击按钮的ID,从而实现对用户选择答案的校验。本文将提供详细的代码示例和步骤,帮助你轻松解决这个问题。

获取按钮索引并校验答案

在 Trivia 游戏中,通常需要判断用户选择的答案是否正确。一种常见的实现方式是为每个答案按钮添加点击事件监听器,并在点击事件发生时,获取被点击按钮的索引,然后将其与正确答案的索引进行比较。

以下是一种实现方法:

  1. 获取所有按钮元素

    首先,需要获取页面上所有的答案按钮元素。可以使用 document.querySelectorAll() 方法,根据按钮的 CSS 类名或其他选择器来获取这些元素。

    const buttons = document.querySelectorAll(".btn"); // 假设按钮的 class 是 "btn"
  2. 为每个按钮添加点击事件监听器

    接下来,需要为每个按钮添加点击事件监听器。可以使用 forEach() 方法遍历按钮数组,并为每个按钮添加 addEventListener() 方法。

    察言观数AskTable 察言观数AskTable

    企业级AI数据表格智能体平台

    察言观数AskTable 78 查看详情 察言观数AskTable
    buttons.forEach((btnEl) => {
      btnEl.addEventListener("click", checkAnswer);
    });
  3. 在 checkAnswer 函数中获取按钮ID并校验答案

    在 checkAnswer 函数中,可以通过事件对象 event 获取被点击的按钮元素,然后通过 event.target.id 属性获取该按钮的ID。

    function checkAnswer(event) {
      const clickedButtonId = event.target.id;
      console.log('button clicked id -', clickedButtonId);
    
      // 获取正确答案
      const correctAnswer = randomQuestion.answers.find((answer) => answer.correct);
    
      // 获取被点击按钮的答案文本
      const clickedButtonText = event.target.textContent;
    
      // 比较被点击按钮的答案文本和正确答案的文本
      if (clickedButtonText === correctAnswer.text) {
        console.log("Correct!");
      } else {
        console.log("Incorrect");
      }
    }

    代码解释:

    • event.target:指向触发事件的元素,即被点击的按钮。
    • event.target.id:获取被点击按钮的 ID 属性值。
    • event.target.textContent:获取被点击按钮的文本内容。
    • randomQuestion.answers.find((answer) => answer.correct): 找到当前问题中 correct 属性为 true 的答案对象。
    • correctAnswer.text: 获取正确答案的文本。
    • 最后,比较被点击按钮的文本内容和正确答案的文本内容,判断答案是否正确。
  4. HTML 结构

    确保你的 HTML 结构如下,每个按钮都有一个唯一的 ID 和 class。

    <button id="answer-1" class='btn'>Answer 1</button>
    <button id="answer-2" class='btn'>Answer 2</button>
    <button id="answer-3" class='btn'>Answer 3</button>
    <button id="answer-4" class='btn'>Answer 4</button>

完整示例代码

const buttons = document.querySelectorAll(".btn");

buttons.forEach((btnEl) => {
  btnEl.addEventListener("click", checkAnswer);
});

function checkAnswer(event) {
  const clickedButtonId = event.target.id;
  console.log('button clicked id -', clickedButtonId);

  // 获取正确答案
  const correctAnswer = randomQuestion.answers.find((answer) => answer.correct);

  // 获取被点击按钮的答案文本
  const clickedButtonText = event.target.textContent;

  // 比较被点击按钮的答案文本和正确答案的文本
  if (clickedButtonText === correctAnswer.text) {
    console.log("Correct!");
  } else {
    console.log("Incorrect");
  }
}

注意事项

  • 确保每个按钮都有唯一的 ID,方便在 checkAnswer 函数中识别。
  • 避免在生产环境中使用类似示例代码中添加相同事件监听器的方式。可以考虑使用事件委托(bubbling & capturing)来提高性能。
  • 在比较答案时,需要注意数据类型的一致性。可以使用 === 严格相等运算符进行比较。
  • randomQuestion 变量需要在 checkAnswer 函数执行前被正确赋值。

总结

通过以上步骤,你可以在 Trivia 游戏中轻松获取被点击按钮的 ID,并将其与正确答案进行比较,从而实现答案校验的功能。 这种方法简单易懂,适用于大多数 Trivia 游戏场景。 记住,代码只是工具,理解其背后的原理才能更好地应用和扩展。

以上就是使用 J*aScript 获取 Trivia 游戏中按钮索引并校验答案的详细内容,更多请关注其它相关文章!


相关文章: Win10双系统截图高效法 截屏快捷键速记【技巧】  12306几点到几点不能订票? | 官方最新系统维护时间全解析  蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源  Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑  C++ map遍历方法大全_C++ map迭代器使用总结  c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架  J*a递归快速排序中静态变量导致数据累积问题的解决方案  Python Sounddevice 音频卡顿问题解析与队列数据安全处理  AO3官方在线访问地址 Archive of Our Own最新镜像合集  汽车之家官方网站官网入口_汽车之家网页版直接进入  蛙漫2日版入口 WAMAN2(日版)无删减漫画官网链接  在WordPress中通过REST API访问受BasicAuth保护的站点内容  蛙漫移动版在线看 蛙漫手机浏览器直达入口  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  Win11怎么隐藏桌面图标 Win11一键隐藏所有桌面元素及恢复显示  解决macOS Tkinter应用双击启动崩溃:PyInstaller打包指南  一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】  神庙逃亡小游戏在线玩 神庙逃亡小游戏入口  期待已久:小米17 Ultra、小米首款NAS本月登场  小米Civi 4录制视频过暗_小米Civi 4亮度优化  HTML空白字符处理机制:渲染、DOM与编码实践  在VS Code中配置和运行Dart程序的完整步骤  NRF24L01数据传输深度解析:解决大载荷接收异常与分包策略  Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧  如何解决电商平台定制报价请求的“黑洞”问题,SprykerQuoteRequest模块助你提升客户体验与销售效率  html5 app怎么运行环境_配html5 app运行环境【教程】  PHP实现即时文章发布与单次数据库写入:自提交模式教程  三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升  C++如何实现异步操作_C++11使用std::future和std::async进行异步编程  支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  J*a应用集成GitHub CLI与API认证指南  126邮箱账号注册 电脑版登录入口  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  虫虫漫画精品漫画官网_虫虫漫画精品漫画官网进入精品漫画  Python vgamepad库按键模拟:正确使用XUSB_BUTTON常量  poki免费入口快捷访问 poki人气小游戏直接玩站点  yandex入口引擎手机版 yandex安卓版下载入口  Golang如何使用const iota_Go iota常量计数器讲解  AO3访问入口汇总 AO3网页版同人作品一键直达  苹果手机如何防止被恶意App追踪  在python-socketio事件处理器中安全访问Flask应用上下文  c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学  AngularJS $http POST请求数据传递与Go后端接收实践  漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道  不同用户不同价格! 索尼开启账户个性化定价测试  C#中解析不规范的HTML为XML 常见的坑与解决办法  字由网在线版登录地址 字由网网页版安全入口  Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址  生成rdflib自定义SPARQL函数:参数匹配与实践指南 

在线客服
服务热线

服务热线

4008988990

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!