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开发包大全整理
Dec 22 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
第二篇Bootstrap起步
Jun 21 Javascript
js对字符串进行编码的方法总结(推荐)
Nov 10 Javascript
js中new一个对象的过程
Feb 20 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
May 02 Javascript
关于javascript作用域的常见面试题分享
Jun 18 Javascript
微信小程序联网请求的轮播图
Jul 07 Javascript
javascript用rem来做响应式开发
Jan 13 Javascript
Node.js实现注册邮箱激活功能的方法示例
Mar 23 Javascript
vue中导出Excel表格的实现代码
Oct 18 Javascript
微信小程序bindtap事件与冒泡阻止详解
Aug 08 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 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
php使用PDO方法详解
2014/12/27 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
JAVASCRIPT keycode总结
2009/02/04 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
python动态加载变量示例分享
2014/02/17 Python
在Python中调用ggplot的三种方法
2015/04/08 Python
Python sys.argv用法实例
2015/05/28 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
python模块smtplib学习
2018/05/22 Python
对python3新增的byte类型详解
2018/12/04 Python
把pandas转换int型为str型的方法
2019/01/29 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
pycharm导入源码的具体步骤
2020/08/04 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
顶岗实习计划书
2014/01/10 职场文书
中专生毕业个人鉴定
2014/02/26 职场文书
大学社团计划书
2014/05/01 职场文书
企业活动策划方案
2014/06/02 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
MySQL触发器的使用
2021/05/24 MySQL
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS