JavaScript实现英语单词题库


Posted in Javascript onDecember 24, 2019

本文实例为大家分享了JavaScript制作简易单词测试题库的具体代码,供大家参考,具体内容如下

使用sessionStorage和localStorage制作一个英语单词题库

由于一共有三个页面 所以html代码和css代码只展示部分作参考

<div class="main">
 <h1>单词录入</h2>
 <hr><br>
 <span>English:</span><input type="text" name="en"><br>
 <span>中文:</span><input type="text" name="cn"><br>
 <button class="btn" value="">保存</button><br><br>
 <hr style=" border-top:10px dotted #4285f4;" /><br><br>
 <button class="start">开始测试</button>
 <span class="num">你已经录入0组词汇</span>
 </div>

页面1JS

var en = document.getElementsByName("en")[0];
var cn = document.getElementsByName("cn")[0];
var btn = document.getElementsByClassName("btn")[0];
var start = document.getElementsByClassName("start")[0];
var num = document.getElementsByClassName("num")[0];
num.innerHTML = `你已经录入${localStorage.length}组词汇`
btn.onclick = function(){
  localStorage.setItem(cn.value,en.value);
  document.getElementsByName("en")[0].value = '';
  document.getElementsByName("cn")[0].value = '';
  //num为已经存入localStorage 的数据长度
  for(var i = 0 ; i<=localStorage.length;i++){
  num.innerHTML = `你已经录入${i}组词汇`
  }
 }
 start.onclick = function(){
  confirm('确定现在开始测验?');
  location.href = 'test.html';
 }

页面2JS

var test = document.getElementById("test");
 var arr = new Array();
 var start = document.getElementsByClassName("start")[0];
 //遍历localStorage对象 将key和value取出来存放到新的arr数组
 for(var i = 0; i < localStorage.length; i++) {
     var getKey = localStorage.key(i);
     var getVal = localStorage.getItem(getKey);
     arr[i] = {
       'key': getKey,
       'val': getVal,
     }
   }
   var btn = document.getElementsByClassName("btn")[0];
   //初始化总题数,正确数量,错误数量
   var all = arr.length;
   var right = 0;
   var wrong = 0;
   sessionStorage.setItem('题库',all);
   btn.onclick = function(){
   //判断数组中存在数据
   if (arr.length) {
    //在数组中随机取一道题显示在页面上
    let index = Math.floor(Math.random()*arr.length);
    test.innerHTML=`<span>${arr[index].key}:</span><input type="text" name="cn" autocomplete="off"><br>`;
    var cn = document.getElementsByName("cn")[0];
    //input失焦后对value值和存好的数据进行比对
    cn.onblur = function(){
    if (cn.value == arr[index].val) {
     right++;
    }else{
     wrong++;
    }
    //储存正确和错误数量
    sessionStorage.setItem('right',right);
    sessionStorage.setItem('wrong',wrong);
    //防止后续出现这个题在数组中删除它
    arr.splice(index,1);
    }  
   }else{
    test.innerHTML = `<span>这已经是最后一题了</span>`
   }  
   }
   start.onclick = function(){
   confirm('确定提交答案?');
   location.href = 'result.html'
   }

页面3JS

var all = document.getElementById("all");
var right = document.getElementById("right");
 var wrong = document.getElementById("wrong");
 all.innerHTML = sessionStorage.题库;
 right.innerHTML = sessionStorage.right;
 wrong.innerHTML = sessionStorage.wrong;
 var start = document.getElementsByClassName("start")[0];
 var again = document.getElementsByClassName("again")[0];
 start.onclick = function(){
  location.href = "save.html";
 }
 again.onclick = function(){
  location.href = "test.html"
 }

下面是两个web储存的图作为重点

JavaScript实现英语单词题库

JavaScript实现英语单词题库

重点是将数据存储到 localStorage 中 再便利这个对象将键值对存储到数组中以便我们后续使用,界面2的内容是将数组的内容按照随机顺序摆放到页面中 在input框失去焦点后进行判断对正确答案和错误答案进行保存 (注意一定不能再点击下一个的时候进行判断因为此时的input框对应的数据内容以及改变) 以便输出最后的数量 其他一些注释已经写在代码中了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
简洁短小的 JavaScript IE 浏览器判定代码
Mar 21 Javascript
3款实用的在线JS代码工具(国外)
Mar 15 Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
javascript实现验证IP地址等相关信息代码
May 10 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
Jun 16 Javascript
js智能获取浏览器版本UA信息的方法
Aug 08 Javascript
jQuery常见的选择器及用法介绍
Dec 20 Javascript
谈谈JavaScript数组常用方法总结
Jan 24 Javascript
javascript 中的继承实例详解
May 05 Javascript
JavaScript实现图片切换效果
Aug 12 Javascript
基于node.js之调试器详解
Aug 22 Javascript
Vue axios设置访问基础路径方法
Sep 19 Javascript
iSlider手机端图片滑动切换插件使用详解
Dec 24 #Javascript
微信小程序自定义模态弹窗组件详解
Dec 24 #Javascript
js实现鼠标点击页面弹出自定义文字效果
Dec 24 #Javascript
javascript实现鼠标点击生成文字特效
Dec 24 #Javascript
Javascript实现鼠标点击冒泡特效
Dec 24 #Javascript
javascript实现点击星星小游戏
Dec 24 #Javascript
JS实现小星星特效
Dec 24 #Javascript
You might like
php allow_url_include的应用和解释
2010/04/22 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
jquery实现心算练习代码
2010/12/06 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
2018/03/08 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
python 读取、写入txt文件的示例
2020/09/27 Python
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
全神贯注教学反思
2014/02/03 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
军人离婚协议书样本
2014/10/21 职场文书
经理岗位职责
2015/02/02 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
酒店员工手册范本
2015/05/14 职场文书
Python Numpy库的超详细教程
2022/04/06 Python