編寫[ 取API物件的特定id ] . part 3 …

Barry YU
4 min readJul 17, 2020

回顧:編寫 [委派監聽-互動視窗] 流程 Part.2

在編寫Part 2 ,使用 event.target 抓取了整個 button.btn-show-movie 的 template。

分析問題 &拆解問題 :

  1. 試著在存取 Index API 的資料時,將電影的 id 一併放進 template 裡。

2. 當按鈕被點擊時,就能把 id 指定出來, 用devTool 的console可以看到id

3. 從API-data清單的id 與show API 給予物件的id 及 id的URL , matches

4. 測試觸及MORE按鈕開啟互動視窗後, 是否會出現詳細資料

尋找答案 及方法:

目的:

當按鈕被點擊時,就能把API 回應的物件 id 指定出來, 並用devTool 的console及DOM操空, 可以看到id是否成功

  1. Dataset 語法 :

編寫dataset- 目標- id 在按鈕上抓取特定API的物件id

2. 測試:console.log ( event.target. XXX.id ) 或

3. 測試 : 直接在DevTool console 上面用DOM去測試

4.Request Show API 傳遞資料

解決方案:Dataset

在 HTML 標籤上紀錄客製化的資訊,也就是在 HTML 標籤中定義 data-* 的屬性。例如以下範例中的 data-userdata-iddata-date-of-birth

Mozilla

實作語法:

從Mozilla 上可以看到這段文字在HTML設定標籤

<div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth>John Doe</div>

然後我們可以呼叫 dataset.* 去檢索 JavaScript 中的這些屬性:

const el = document.querySelector('#user');
console.log(el.dataset.user)
//johndoe
console.log(el.dataset.id)
//1234567890

「 應用上述的HTML語法 」

延伸兩個步驟完成HTMl 的 dataset 語法編輯在main.js 檔

//who trigger it 在函式裡加這個console.log // console.log(event.target.dataset.id)   

測試看看!

挑兩部電影直接點more按鈕 , 再觀察console 有沒有抓取到id ,

,<<這是API提供的物件ID >>

開啟devTool :第一部電影是清單id :65 , 第二部電影是清單 id :76 .

用DOM測試 : 直接在DevTool console 上面用DOM去測試某API物件

YA~ 同學們(讀者們)~~~學會了沒!

記得按讚分享 .

補充:

這篇耗費時間:回憶一些用法譬如:forEach

  1. forEach 的用法item . 這是取代 for ( i=0 ; i<x ; i++ ){ } , item 指的是 index上的物件.

之前常用…久了會…會忘…

2. 因為起初dataset 設定在Html 上面的button , 排錯花了些時間說到

想到index… interview 既然會發瘋像面試工程師說 : 「 是不是不能為零 」lol

--

--