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 相关文章推荐
jQuery使用一个按钮控制图片的伸缩实现思路
Apr 19 Javascript
表格奇偶行设置不同颜色的核心JS代码
Dec 24 Javascript
jQuery中;function($,undefined) 前面的分号的用处
Dec 17 Javascript
jQuery中的select操作详解
Nov 29 Javascript
node.js express中app.param的用法详解
Jul 16 Javascript
bootstrap+jquery项目引入文件报错的解决方法
Jan 22 jQuery
JavaScript实现的贝塞尔曲线算法简单示例
Jan 30 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
Jul 26 Javascript
从0到1构建vueSSR项目之路由的构建
Mar 07 Javascript
vue 使用鼠标滚动加载数据的例子
Oct 31 Javascript
Vue实现按钮级权限方案
Nov 21 Javascript
JavaScript实现移动端拖动元素
Nov 24 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
学习YUI.Ext 第三天
2007/03/10 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
详解react native页面间传递数据的几种方式
2018/11/07 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python中的Numpy入门教程
2014/04/26 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
基于python实现把图片转换成素描
2019/11/13 Python
Python生成器generator原理及用法解析
2020/07/20 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
办公室文秘岗位职责
2013/11/15 职场文书
八年级美术教学反思
2014/02/02 职场文书
消防战士优秀事迹材料
2014/02/13 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
国庆庆典邀请函
2015/02/02 职场文书
小学校长开学致辞
2015/07/29 职场文书
考研经验交流会策划书
2015/11/02 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
Redis如何实现分布式锁
2021/08/23 Redis