該如何「存資料到 localStorage 資料庫」呢?
先來看一下 localStorage 長什麼樣子
進入開發者工具 > 選擇 Application 頁籤
🎃 在 localStorage 下方,有一個「http://127.0.0.1:5500」
原因為:
我現在就是用「http://127.0.0.1:5500」 來讀取這一頁
🎃 選擇「http://127.0.0.1:5500」,一開始,localStorage 裡面都會是「空的」(一開始,是沒有資料的)
.setItem
存資料到 localStorage 裡面
作法如下:
🎃 建立變數str
,給它一個值'tom'
🍅 .setItem
小括弧內的第一個值:會帶到 localStorage 的「Key」裡面
🍅 .setItem
小括弧內的第二個值:會帶到 localStorage 的「Value」裡面
JS:
1 | var str = 'tom'; |
🎃 回到開發者工具,可以看到:
myName
被帶到「Key」裡面tom
被帶到「Value」裡面
.getItem
取出 localStorage 裡面的 Value
作法如下:
🎃 用console.log()
來看“取出的值”
🍅 在.getItem
小括號裡面,填入「Key」,就可以取出「localStorage 裡面的 Value」
‼️ 注意!.getItem
小括號要填入的是「Key」,不是「Value」
JS:
1 | var str = 'tom'; |
🎃 在 Console 裡面,就撈出了「localStorage 裡面的 Value」
接下來,會分別針對「儲存資料」、「取出值」來做範例:
我的 codepen 範例
https://codepen.io/saffranwang/full/LYEOMyZ
文字欄位的“value
”,存到 localStorage 裡面
html:
🎃 文字欄位的「className 叫做.textClass
」–> 會用 JavaScript 去存取它
1 | <h2>請輸入你的姓名</h2> |
現在,我要做的功能是:點擊按鈕後,會撈出「文字欄位的值“value
”」,再把“value
”存到 localStorage 裡面
JS 作法如下:
1️⃣ 在「按鈕」綁定監聽事件.addEventListener
🎃 建立變數btn
,來選取「按鈕.btnClass
」
🎃 在「變數btn
」綁定監聽事件.addEventListener
🍋 點擊btn
,就會執行「一個 function 叫做saveName
」
JS:
1 | var btn = document.querySelector('.btnClass'); |
2️⃣ 撈出「文字欄位的value
」
在function saveName(e){}
裡面:
🎃 建立變數str
,來記錄「當下,文字欄位的value
」
🍋 用.value
取出「文字欄位的value
」
‼️ 因為要記錄的是「“點擊”當下,文字欄位的value
」,因此「變數str
」要寫在function saveName(e){}
裡面
❌ 因為「文字欄位本身沒有填寫value
屬性」,因此,如果把「變數str
」寫在function saveName(e){}
外面,就會抓到「空值」
JS:
1 | var btn = document.querySelector('.btnClass'); |
3️⃣ 把value
存到 localStorage 裡面
🎃 用.setItem
把value
存到 localStorage 裡面
JS:
1 | var btn = document.querySelector('.btnClass'); |
寫完 JS 程式碼了!
在文字欄位輸入「ruta」後,按下「點擊」
用開發者工具 Application 看:
🍋 Key 帶入了myName
🍋 Value 帶入了ruta
取出 localStorage 裡面的 Value
html:
🎃 新增一個按鈕 class="btnCall"
1 | <h2>請輸入你的姓名</h2> |
現在,我要做的功能是:點擊「點擊呼叫名字」按鈕後,會跳出 alert 顯示「儲存在 localStorage 裡面的 Value」
JS 作法如下:
1️⃣ 在「按鈕」綁定監聽事件.addEventListener
- 建立變數
call
,來選取.btnCall
:
var call = document.querySelector('.btnCall');
在「按鈕」綁定監聽事件.addEventListener
🎃 點擊.btnCall
,就會執行 function
JS:
1 | // 取出 localStorage 裡面的 Value |
2️⃣ 取出「localStorage 裡面的 Value」
🎃 在 function 裡面,建立變數str
,用.getItem
取出「localStorage 裡面的 Value」
‼️ 雖然在前一個 function 已經有把變數取名叫str
了,但是因為在 function 裡面的是「區域變數」–> 在 function 執行完後,「區域變數」就會被銷毀,因此在另一個 function 還是可以把變數取名叫做str
🎃 再用 alert 顯示出「localStorage 裡面的 Value」
JS:
1 | var btn = document.querySelector('.btnClass'); |
寫完 JS 程式碼了!
在文字欄位輸入「harry」後,
🍋 按下「點擊」
用開發者工具 Application 看:Value 帶入了harry
🍋 按下「點擊呼叫名字」跳出 alert 顯示「你的名字叫做 harry」