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 相关文章推荐
js获取指定日期前后的日期代码
Aug 20 Javascript
JQuery实现带排序功能的权限选择实例
May 18 Javascript
JavaScript运动减速效果实例分析
Aug 04 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
Sep 04 Javascript
jquery radio的取值_radio的选中_radio的重置方法
Sep 20 Javascript
ES6学习教程之对象的扩展详解
May 02 Javascript
页面间固定参数,通过cookie传值的实现方法
May 31 Javascript
centos 上快速搭建ghost博客方法分享
May 23 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
Dec 28 Javascript
es6数据变更同步到视图层的方法
Mar 04 Javascript
vue路由插件之vue-route
Jun 13 Javascript
vue打开新窗口并实现传参的图文实例
Mar 04 Vue.js
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
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
基于mysql的bbs设计(四)
2006/10/09 PHP
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
php 什么是PEAR?(第三篇)
2009/03/19 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
django 环境变量配置过程详解
2019/08/06 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
python文件排序的方法总结
2020/09/13 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
C# Debug和Testing相关面试题
2015/10/25 面试题
百度吧主申请感言
2014/01/12 职场文书
单位成立周年感言
2014/01/26 职场文书
欢送退休感言
2014/02/08 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
卖房协议书
2014/04/11 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
补充协议书
2015/01/28 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
高中数学教学反思范文
2016/02/18 职场文书
7个你应该知道的JS原生错误类型
2021/04/29 Javascript
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL