JavaScript實(shí)現(xiàn)英語(yǔ)單詞題庫(kù)
本文實(shí)例為大家分享了JavaScript制作簡(jiǎn)易單詞測(cè)試題庫(kù)的具體代碼,供大家參考,具體內(nèi)容如下
使用sessionStorage和localStorage制作一個(gè)英語(yǔ)單詞題庫(kù)
由于一共有三個(gè)頁(yè)面 所以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">開(kāi)始測(cè)試</button> <span class="num">你已經(jīng)錄入0組詞匯</span> </div>
頁(yè)面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 = `你已經(jīng)錄入${localStorage.length}組詞匯` btn.onclick = function(){ localStorage.setItem(cn.value,en.value); document.getElementsByName("en")[0].value = ''; document.getElementsByName("cn")[0].value = ''; //num為已經(jīng)存入localStorage 的數(shù)據(jù)長(zhǎng)度 for(var i = 0 ; i<=localStorage.length;i++){ num.innerHTML = `你已經(jīng)錄入${i}組詞匯` } } start.onclick = function(){ confirm('確定現(xiàn)在開(kāi)始測(cè)驗(yàn)?'); location.href = 'test.html'; }
頁(yè)面2JS
var test = document.getElementById("test"); var arr = new Array(); var start = document.getElementsByClassName("start")[0]; //遍歷localStorage對(duì)象 將key和value取出來(lái)存放到新的arr數(shù)組 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]; //初始化總題數(shù),正確數(shù)量,錯(cuò)誤數(shù)量 var all = arr.length; var right = 0; var wrong = 0; sessionStorage.setItem('題庫(kù)',all); btn.onclick = function(){ //判斷數(shù)組中存在數(shù)據(jù) if (arr.length) { //在數(shù)組中隨機(jī)取一道題顯示在頁(yè)面上 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失焦后對(duì)value值和存好的數(shù)據(jù)進(jìn)行比對(duì) cn.onblur = function(){ if (cn.value == arr[index].val) { right++; }else{ wrong++; } //儲(chǔ)存正確和錯(cuò)誤數(shù)量 sessionStorage.setItem('right',right); sessionStorage.setItem('wrong',wrong); //防止后續(xù)出現(xiàn)這個(gè)題在數(shù)組中刪除它 arr.splice(index,1); } }else{ test.innerHTML = `<span>這已經(jīng)是最后一題了</span>` } } start.onclick = function(){ confirm('確定提交答案?'); location.href = 'result.html' }
頁(yè)面3JS
var all = document.getElementById("all"); var right = document.getElementById("right"); var wrong = document.getElementById("wrong"); all.innerHTML = sessionStorage.題庫(kù); 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" }
下面是兩個(gè)web儲(chǔ)存的圖作為重點(diǎn)
重點(diǎn)是將數(shù)據(jù)存儲(chǔ)到 localStorage 中 再便利這個(gè)對(duì)象將鍵值對(duì)存儲(chǔ)到數(shù)組中以便我們后續(xù)使用,界面2的內(nèi)容是將數(shù)組的內(nèi)容按照隨機(jī)順序擺放到頁(yè)面中 在input框失去焦點(diǎn)后進(jìn)行判斷對(duì)正確答案和錯(cuò)誤答案進(jìn)行保存 (注意一定不能再點(diǎn)擊下一個(gè)的時(shí)候進(jìn)行判斷因?yàn)榇藭r(shí)的input框?qū)?yīng)的數(shù)據(jù)內(nèi)容以及改變) 以便輸出最后的數(shù)量 其他一些注釋已經(jīng)寫(xiě)在代碼中了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
uniapp微信小程序自定義導(dǎo)航欄的全過(guò)程
最近一直在學(xué)習(xí)uni-app開(kāi)發(fā),由于uniapp是基于vue.js技術(shù)開(kāi)發(fā)的,所以下面這篇文章主要給大家介紹了關(guān)于uniapp微信小程序自定義導(dǎo)航欄的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07js有趣的非空判斷函數(shù) + ?? 實(shí)現(xiàn)
本文介紹了JS中空值合并操作符??的用法,包括如何使用它來(lái)判斷數(shù)據(jù)是否為“合法數(shù)據(jù)”,即非空字符串、非undefined和非null,下面就一起來(lái)了解一下,感興趣的可以了解一下2024-09-09JavaScript實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圣誕游戲
圣誕節(jié)即將來(lái)臨,大家都在發(fā)圣誕樹(shù),小編今天就為大家介紹一個(gè)基于JavaScript實(shí)現(xiàn)的圣誕小游戲,文中的示例代碼簡(jiǎn)單易懂,感興趣的可以學(xué)習(xí)一下2021-12-12doctype后如何獲得body.clientHeight的方法
doctype后如何獲得body.clientHeight的方法...2007-07-07關(guān)于javascript中dataset的問(wèn)題小結(jié)
本文給大家介紹javascript中dataset的問(wèn)題詳解,包括dataset的基礎(chǔ)用法,使用dataset的作用以及dataset的基礎(chǔ)操作等相關(guān)問(wèn)題,對(duì)javascript dataset問(wèn)題感興趣的朋友一起學(xué)習(xí)吧2015-11-11教你JS中的運(yùn)算符乘方、開(kāi)方及變量格式轉(zhuǎn)換
本文運(yùn)用實(shí)例教大家JS中的運(yùn)算符乘方、開(kāi)方及變量格式轉(zhuǎn)換,代碼簡(jiǎn)單明了,有需要的可以參考學(xué)習(xí)。2016-08-08