iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
自我挑戰組

JavaScript學習日誌系列 第 21

學習日誌21-localstorage(瀏覽器資料儲存)2

  • 分享至 

  • xImage
  •  

data-* 透過dataset讀取自訂資料

在html標籤裡,可以自訂一些屬性,利用dataset去自訂。
例如在li標籤自訂 num 表示數字, runner 表示跑者,並給於數值。

<ul class="list">
   <li data-num="0" data-runner="1">穩哥</li>
</ul>

用JS去撈出資料

  1. 宣告 list 去選定li
  2. 命名 checkList 函式
  3. 宣告 numrunner 用 **e.target.dataset ** 各自對應
  4. 用 console.log 確認有無抓到這兩個值
  5. 最後監聽點擊 list 的 li 事件
var list = document.querySelector('.list');

function checkList(e){
  var num = e.target.dataset.num;
  var runner = e.target.dataset.runner;
  console.log('第 '+num+ ' 位跑者');
  console.log('跑者標號是 '+runner);
}
list.addEventListener('click',checkList,false);

https://ithelp.ithome.com.tw/upload/images/20191006/20121004f8WckfhfBe.png

dataset、array運用

把陣列把資料插進 html 並用 dataset 抓取資料練習

  1. html部分,建立空的 ul.list ,待會用JS插入資料
<body>
    <ul class="list"></ul>
</body>
  1. JS部分,建立陣列及宣告 list 指定 html的 ul標籤
var roadRunning = [
  {
    ruuner:'村長'
  }
  ,{
    ruuner:'妙妙'
  }
]
var list = document.querySelector('.list');
  1. 命名 updateList 函式,用來把陣列資料插入 ul 裡,並執行此函式
    I. 宣告 str 先空值等會用來放要插入的字串組合
    II. 宣告 len 放整陣列的總數
    III. 跑迴圈,插入字串'<li data-num="'+i+'">' + 陣列的跑者 + '</li>'
    IV. 用 str+= 累計每一次跑的結果
    V. 用 list.innerHTMLstr 資料插入 html 的 ul 裡
function updateList(){
  var str = '';
  var len = roadRunning.length;
  for(var i = 0;len>i;i++){
    str+='<li data-num="'+i+'">'+roadRunning[i].ruuner+'</li>'
  }
  list.innerHTML = str;
}
updateList();
  1. 命名 checkList 函式,用來確認點擊的跑者是誰
    I. 宣告 num 指定 e.target.dataset.num 紀錄點擊的 data-num 屬性的編號
    II. 可以先 console.log 確認點擊的節點是誰
    III. 使用 IF判斷if(e.target.nodeName !== 'LI'){return} 假如點擊的不是 li,就用 return 來去中斷,不讓程式繼續讀下去
    IV. 如果點擊是 li 就執行 console.log 跑者是誰
    V. 最後監聽點擊 list 的 checkList 事件
function checkList(e){
  var num = e.target.dataset.num;
  console.log(e.target.nodeName);
  if(e.target.nodeName !== 'LI'){return};
  console.log('你選擇的跑者是'+roadRunning[num].ruuner)
}
list.addEventListener('click',checkList,false);

https://ithelp.ithome.com.tw/upload/images/20191006/201210046IP5ka1Ehy.png

splice - 刪除array資料

array 可以用 push 新增資料,另外用 splice 來刪除資料

  1. 新增一個 array 加入資料
var pet = ['dog','cat']
  1. 複習 push 新增一個資料
pet.push('bird')
  1. 此時 array 全部資料 ["dog", "cat", "bird"]
  2. 利用 splice 刪除 array 資料
  • ()裡的第一數值是說從第幾筆開始刪
  • ()裡的第二數值是說刪掉幾個
pet.splice(0,2)

這邊是從第一筆開始刪,總共刪掉兩個,所以刪掉了'dog','cat',只剩'bird'


上一篇
學習日誌20-localstorage(瀏覽器資料儲存)1
下一篇
學習日誌22-localstorage(瀏覽器資料儲存)3
系列文
JavaScript學習日誌30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言