当前位置:首页 > JavaScript

js实现单选判断对错

2026-01-31 05:06:49JavaScript

实现单选判断对错的功能

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

HTML结构

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

<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逻辑

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

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事件:

js实现单选判断对错

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 单选实现方法 在 Vue 中实现单选功能可以通过多种方式完成,以下是常见的几种方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定到同一个变量,实现单选效果: <t…

vue实现div单选

vue实现div单选

实现 div 单选功能 在 Vue 中实现 div 单选功能可以通过多种方式完成。以下是几种常见的实现方法: 使用 v-model 和计算属性 通过 v-model 绑定一个变量,结合计算属性实现单…

vue 实现图片单选

vue 实现图片单选

Vue 实现图片单选功能 在 Vue 中实现图片单选功能,可以通过结合 v-model 和自定义事件来实现。以下是具体实现方法: 方法一:使用 v-model 和计算属性 创建一个 Vue 组件,包…

vue实现单选多选

vue实现单选多选

Vue 实现单选功能 使用 v-model 绑定单选按钮的值,确保同一组单选按钮的 name 属性相同。 <template> <div> <lab…

vue radio实现单选

vue radio实现单选

实现 Vue 单选按钮(Radio)的方法 使用原生 <input type="radio"> 通过 v-model 绑定数据实现单选功能,适合基础场景: <template>…

vue实现列表单选

vue实现列表单选

实现列表单选的方法 在Vue中实现列表单选功能,可以通过多种方式完成。以下是几种常见的实现方法: 使用v-model绑定单选值 通过v-model绑定一个变量来存储当前选中的项,结合v-for渲染…