当前位置:首页 > JavaScript

js实现选择题

2026-04-04 03:56:02JavaScript

JavaScript 实现选择题功能

数据结构设计

使用数组存储题目信息,每个题目对象包含题干、选项和正确答案:

const questions = [
  {
    question: "JavaScript 是什么类型的语言?",
    options: ["编译型", "解释型", "混合型", "机器码"],
    answer: 1
  },
  {
    question: "以下哪个不是 JavaScript 的基本数据类型?",
    options: ["String", "Boolean", "Object", "Number"],
    answer: 2
  }
];

HTML 结构

创建基本的答题界面结构:

js实现选择题

<div id="quiz-container">
  <h2 id="question"></h2>
  <ul id="options"></ul>
  <button id="submit">提交答案</button>
  <p id="result"></p>
</div>

渲染题目

动态加载题目和选项到页面:

let currentQuestion = 0;
let score = 0;

function loadQuestion() {
  const questionElement = document.getElementById('question');
  const optionsElement = document.getElementById('options');

  questionElement.textContent = questions[currentQuestion].question;
  optionsElement.innerHTML = '';

  questions[currentQuestion].options.forEach((option, index) => {
    const li = document.createElement('li');
    li.innerHTML = `<input type="radio" name="option" value="${index}"> ${option}`;
    optionsElement.appendChild(li);
  });
}

答案验证

处理用户提交并验证答案:

js实现选择题

document.getElementById('submit').addEventListener('click', () => {
  const selectedOption = document.querySelector('input[name="option"]:checked');
  const resultElement = document.getElementById('result');

  if (!selectedOption) {
    resultElement.textContent = '请选择一个选项';
    return;
  }

  const answer = parseInt(selectedOption.value);
  if (answer === questions[currentQuestion].answer) {
    score++;
    resultElement.textContent = '回答正确!';
  } else {
    resultElement.textContent = '回答错误!';
  }

  setTimeout(() => {
    currentQuestion++;
    if (currentQuestion < questions.length) {
      loadQuestion();
    } else {
      showResult();
    }
  }, 1000);
});

结果显示

显示最终得分:

function showResult() {
  const quizContainer = document.getElementById('quiz-container');
  quizContainer.innerHTML = `
    <h2>测试完成</h2>
    <p>你的得分是: ${score}/${questions.length}</p>
    <button onclick="location.reload()">重新测试</button>
  `;
}

// 初始化加载第一题
loadQuestion();

样式优化

添加基础CSS样式增强用户体验:

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

#options {
  list-style: none;
  padding: 0;
}

#options li {
  margin: 10px 0;
  padding: 10px;
  background: #f5f5f5;
  border-radius: 5px;
}

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

#result {
  margin-top: 20px;
  font-weight: bold;
}

扩展功能

  1. 添加计时器功能
  2. 实现题目随机排序
  3. 添加多选题支持
  4. 增加题目解析显示
  5. 实现本地存储记录最高分

这个实现包含了选择题的核心功能,可以根据需要进一步扩展和完善。

标签: 选择题js
分享给朋友:

相关文章

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js实现图片移动

js实现图片移动

使用CSS和JavaScript实现图片移动 方法一:使用CSS动画结合JavaScript控制 通过CSS定义动画关键帧,JavaScript动态添加或移除动画类。 /* CSS部分 */ .m…