看到遞迴就想記下來。
簡述
element.closest 是一個 DOM 的方法,用來找第一個符合「選取器」的父元素。
思路大概是這樣子:
- 找到上層父元素
- 如果父元素符合搜尋的 class 名稱,就把父元素回傳
- 如果上層還有元素,重複上面兩個步驟
備註:只要是 DOM 中的「元素節點」都會有 classList 屬性,所以 node.classList 是在檢查「是不是元素節點」,只要不符合就表示找到底了(最後會找到 <html> 的父層 -> 也就是 undefined)
迴圈迭代法
| 1 | function closest(node, className) { | 
遞迴法
| 1 | function closestRecursive(node, className) { |