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 常用操作代码
Mar 14 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
Oct 17 Javascript
jQuery实现自定义下拉列表
Jan 05 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
Aug 07 Javascript
基于原生JS实现图片裁剪
Aug 01 Javascript
React 子组件向父组件传值的方法
Jul 24 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
Aug 23 Javascript
自制简易打赏功能的实例
Sep 02 Javascript
使用原生js编写一个简单的框选功能方法
May 13 Javascript
vue2.0 实现富文本编辑器功能
May 26 Javascript
解决Vue router-link绑定事件不生效的问题
Jul 22 Javascript
基于javascript实现移动端轮播图效果
Dec 21 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生成静态页面的简单示例
2014/04/17 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
小程序清理本地缓存的方法
2018/08/17 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
JS实现滑动导航效果
2020/01/14 Javascript
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
Python的类实例属性访问规则探讨
2015/01/30 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
Python内置模块logging用法实例分析
2018/02/12 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
Shell如何接收变量输入
2012/09/24 面试题
羽毛球社团活动总结
2014/06/27 职场文书
高中综合实践活动总结
2014/07/07 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
环保证明
2015/06/23 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers