当前位置:首页 > 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 结构

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

<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);
  });
}

答案验证

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

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样式增强用户体验:

js实现选择题

#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实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…

js实现文件夹

js实现文件夹

使用JavaScript创建文件夹 在浏览器端的JavaScript中无法直接操作文件系统创建文件夹,这是出于安全考虑。但在Node.js环境中可以通过文件系统模块(fs)实现。 Node.js中使…