新闻中心

使用 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 游戏中按钮索引并校验答案的详细内容,更多请关注其它相关文章!


# javascript  # 显示效果  # 是否正确  # 选择器  # 运算符  # 单选框  # 都有  # 可以使用  # 游戏中  # 点击事件  # 工具  # html  # java  # css  # 表单  # 西门网站建设制作  # 贵州市市场推广营销方案  # 网站建设及营销方案  # seo优化什么叫端口  # 西安正规关键词排名开发  # 海外创业推广网站  # 抖音seo代理公司排行  # 定制关键词排名效果图片  # 明城网站优化作用  # 宁波网站制作建设  # 是一种 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验  使用J*aScript检测输入元素是否包含在特定类中  css滚动动画效果怎么实现_使用Animate.css滚动触发动画类  Pygame教程:解决用户输入与游戏状态更新不同步问题  AO3同人作品网入口 AO3搜索引擎官网永久地址  响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配  狙击外星人小游戏开始_狙击外星人小游戏立即开始  C++ typeid如何获取类型信息_C++ RTTI运行时类型识别用法  J*aScript打印功能_j*ascript输出控制  解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常  深入理解J*a编译器的兼容性选项:从-source到--release  微博网页版主页入口 微博官方网站免登录访问  必由学登录入口 必由学官方网站在线访问链接  微信聊天记录怎么加密_微信聊天记录加密方法  12306选座怎么选到临时改签座_12306改签选座策略与步骤  excel怎么制作工资条 excel快速生成工资条的方法  C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图  天猫2025双十一0点秒杀攻略 天猫爆款抢购时间  CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  Archive of Our Own官网直达 AO3最新可用地址一览  高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法  《燕云十六声》两周内达九百万玩家!位居畅销榜第五  微博网页版首页入口 微博电脑端官网登录链接  CSS图片焦点样式实现教程:理解与应用tabindex属性  漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】  yandex入口引擎手机版 yandex安卓版下载入口  包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接  sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置  汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口  Python Socket多播通信中指定源IP地址的实践指南  2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析  晋江读书网页版在线登录 晋江读书电脑版官网  PrimeNG Sidebar背景色自定义指南:CSS覆盖与主题化实践  绝地鸭卫平a核爆刀流玩法攻略  Eclipse怎么运行工程_Eclipse工程运行配置说明  C++如何实现异步操作_C++11使用std::future和std::async进行异步编程  Go语言中JSON数据解码与字段访问指南  vivo浏览器自带的下载器速度慢怎么办 vivo浏览器提升文件下载速度的技巧  Pyrogram与g4f集成:异步编程实践与常见错误解决  NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰  ArrayList与LinkedList操作复杂度详解:遍历与修改  微信客户端如何收红包_微信客户端接收红包使用教程  J*a中实现Go语言select通道多路复用机制  Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理  UC浏览器网页版登录入口官网 电脑版网址入口  Linux如何构建多环境配置管理_Linux多环境配置方案  漫蛙2正版漫画站 漫蛙2网页版快速访问入口  如何在Python中使用Optional类型处理可变对象并避免Pylint警告 

搜索