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)寫在代碼中了。
以上就是本文的全部?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-07
js有趣的非空判斷函數(shù) + ?? 實(shí)現(xiàn)
本文介紹了JS中空值合并操作符??的用法,包括如何使用它來(lái)判斷數(shù)據(jù)是否為“合法數(shù)據(jù)”,即非空字符串、非undefined和非null,下面就一起來(lái)了解一下,感興趣的可以了解一下2024-09-09
JavaScript實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圣誕游戲
圣誕節(jié)即將來(lái)臨,大家都在發(fā)圣誕樹(shù),小編今天就為大家介紹一個(gè)基于JavaScript實(shí)現(xiàn)的圣誕小游戲,文中的示例代碼簡(jiǎn)單易懂,感興趣的可以學(xué)習(xí)一下2021-12-12
doctype后如何獲得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

