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功能函数(2009-06-04更新)
Jun 04 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
js格式化金额可选是否带千分位以及保留精度
Jan 28 Javascript
用js一次改变多个input的readonly属性值的方法
Jun 11 Javascript
Ionic默认的Tabs模板使用实例
Aug 29 Javascript
JS解析url查询参数的简单代码
Aug 06 Javascript
浅谈angularJS的$watch失效问题的解决方案
Aug 11 Javascript
JS立即执行函数功能与用法分析
Jan 15 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
Nov 12 Javascript
jquery实现直播弹幕效果
Nov 28 jQuery
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
jQuery实现简单轮播图效果
Dec 27 jQuery
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留言本实例代码
2010/05/09 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
PHP生成条形图的方法
2014/12/10 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
python多重继承新算法C3介绍
2014/09/28 Python
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
Python实现FLV视频拼接功能
2020/01/21 Python
python 实用工具状态机transitions
2020/11/21 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
猫咪家具:CatsPlay
2018/11/03 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
自我介绍演讲稿
2014/01/15 职场文书
股权转让协议书
2014/12/07 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
环保主题班会教案
2015/08/13 职场文书