当前位置:首页 > JavaScript

js实现单选判断对错

2026-01-31 05:06:49JavaScript

实现单选判断对错的功能

在JavaScript中实现单选判断对错的功能,可以通过监听用户的选择,然后与正确答案进行比对来实现。以下是一个完整的实现示例:

HTML结构

创建一个包含单选按钮的表单,每个问题对应一组选项:

js实现单选判断对错

<div class="quiz-container">
  <div class="question">
    <p>1. JavaScript是一种什么类型的语言?</p>
    <label><input type="radio" name="q1" value="A"> A. 编译型</label>
    <label><input type="radio" name="q1" value="B"> B. 解释型</label>
    <label><input type="radio" name="q1" value="C"> C. 混合型</label>
  </div>

  <div class="question">
    <p>2. 以下哪个不是JavaScript的基本数据类型?</p>
    <label><input type="radio" name="q2" value="A"> A. String</label>
    <label><input type="radio" name="q2" value="B"> B. Number</label>
    <label><input type="radio" name="q2" value="C"> C. Array</label>
  </div>

  <button id="check-btn">检查答案</button>
  <div id="result"></div>
</div>

JavaScript逻辑

添加事件监听器,当用户点击检查按钮时验证答案:

js实现单选判断对错

document.getElementById('check-btn').addEventListener('click', function() {
  const answers = {
    q1: 'B', // 第一题的正确答案是B
    q2: 'C'  // 第二题的正确答案是C
  };

  let score = 0;
  const totalQuestions = Object.keys(answers).length;

  // 检查每道题的回答
  for (const question in answers) {
    const selectedOption = document.querySelector(`input[name="${question}"]:checked`);

    if (selectedOption && selectedOption.value === answers[question]) {
      score++;
      selectedOption.parentElement.style.color = 'green';
    } else if (selectedOption) {
      selectedOption.parentElement.style.color = 'red';
    }
  }

  // 显示结果
  const resultDiv = document.getElementById('result');
  resultDiv.innerHTML = `你答对了 ${score} 题,共 ${totalQuestions} 题`;
});

CSS样式(可选)

添加一些基本样式提升用户体验:

.quiz-container {
  max-width: 600px;
  margin: 0 auto;
  font-family: Arial, sans-serif;
}

.question {
  margin-bottom: 20px;
  padding: 15px;
  border: 1px solid #ddd;
  border-radius: 5px;
}

#check-btn {
  padding: 10px 20px;
  background-color: #4CAF50;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

#check-btn:hover {
  background-color: #45a049;
}

功能扩展

要实现即时反馈(不用点击检查按钮),可以修改为监听单选按钮的change事件:

document.querySelectorAll('input[type="radio"]').forEach(radio => {
  radio.addEventListener('change', function() {
    const questionName = this.name;
    const correctAnswer = answers[questionName];

    if (this.value === correctAnswer) {
      this.parentElement.style.color = 'green';
    } else {
      this.parentElement.style.color = 'red';
    }
  });
});

注意事项

  1. 确保每个问题的单选按钮组有相同的name属性
  2. 正确答案可以存储在对象、数组或从服务器获取
  3. 对于大型测验,考虑使用更结构化的数据存储方式
  4. 可以添加计时器、题目随机排序等增强功能

这个实现提供了基本的单选判断功能,可以根据需要进一步扩展和完善。

标签: 对错单选
分享给朋友:

相关文章

vue 实现表格单选

vue 实现表格单选

实现表格单选的基本思路 在Vue中实现表格单选功能,通常需要结合表格组件(如el-table)和数据绑定。核心逻辑是通过点击事件更新当前选中行的唯一标识(如id),并通过:class或:style绑定…

vue实现单选按钮

vue实现单选按钮

实现单选按钮的基本方法 在Vue中实现单选按钮通常使用v-model指令绑定数据,结合input元素的type="radio"属性。以下是一个基础示例: <template> <…

vue实现单选弹窗

vue实现单选弹窗

Vue 实现单选弹窗的方法 使用 Element UI 的 Dialog 和 Radio 组件 安装 Element UI 后,可以通过 Dialog 和 Radio 组件快速实现单选弹窗功能。…

vue 实现组单选

vue 实现组单选

Vue 实现单选组 在 Vue 中实现单选组可以通过多种方式,以下是几种常见的实现方法: 使用 v-model 绑定单选按钮组 通过 v-model 绑定一个变量,单选按钮的 value 属性…

vue 实现单选全选

vue 实现单选全选

实现单选和全选功能 在Vue中实现单选和全选功能,可以通过v-model指令绑定数据,结合计算属性和方法来实现交互逻辑。以下是一个完整的实现方案。 基础数据结构 定义列表数据,每个数据项包含选中状…

vue checbox实现单选

vue checbox实现单选

使用 v-model 和计算属性 在 Vue 中,可以通过 v-model 绑定一个计算属性来实现单选效果。计算属性用于动态控制复选框的选中状态。 <template> <d…