jquery .parent .parents .closest 選擇元素的條件方法在使用上是有差別的。

比較 .parent().parents() .closest() 的差別:
.parent() 只往上查找一層
.parents() 往上查找 不停止 找出所有符合條件的
.closest() 往上查找 只要找到符合條件的 就停止


.parent()

定義和用法: .parent( selector ) ,( selector ) 字符串值,包含用於匹配元素的選擇器表達式。
.parent() 獲得當前匹配元素集合中每個元素的父元素,使用選擇器進行篩選是可選的。
.parent() 方法允許我們在 DOM 樹中搜索這些元素的父元素,並用匹配元素構造一個新的 jQuery 對象。

See the Pen jquery比較parent.parents.closest差別 by Jimmy_Wu (@Jimmy_Wu) on CodePen.


js bin展示開新視窗


.parents()

定義和用法: .parents( [selector] ) ,[selector]內如果有指定袓先元素對象的話,就只會到最外層的袓先元素對象就停止。如果都沒有指定對象的話 (空值),就會一直套用到 html 層去…

.parents() 方法允許我們能夠在DOM樹中搜索到這些元素的祖先元素,從有序的向上匹配元素,並根據匹配的元素創建一個新的jQuery對象;返回的元素秩序是從離他們最近的父級元素開始的。當多個DOM元素在原有集合中,返回的集合將是原來元素以相反的順序排序,並且重複刪除。

(從裡到外的順序,依例來來看元素層級 SPAN > P > DIV > BODY > HTML )

See the Pen jquery比較parent.parents.closest差別-2 by Jimmy_Wu (@Jimmy_Wu) on CodePen.


js bin展示開新視窗


資料來源:
jQuery 遍歷 – parent() 方法
jQuery 遍歷 – parents() 方法
.parents()
[jQuery] .parent() 與 .parents() 與 .closest() 的差異