jQuery遍歷之closest()方法
以選定的元素為中心,往內查找可以通過find、children方法。如果往上查找,也就是查找當前元素的父輩祖輩元素,jQuery提供了closest()方法,這個方法類似parents但是又有一些細微的區別,屬於使用頻率很高的方法
closest()方法接受一個匹配元素的選擇器字符串
從元素本身開始,在DOM 樹上逐級向上級元素匹配,並返回最先匹配的祖先元素
例如:在div元素中,往上查找所有的li元素,可以這樣表達
$("div").closet("li')
注意:jQuery是一個合集對象,所以通過closest是匹配合集中每一個元素的祖先元素
closest()方法給定的jQuery集合或元素來過濾元素
同樣的也是因為jQuery是合集對象,可能需要對這個合集對象進行一定的篩選,找出目標元素,所以允許傳一個jQuery的對象
注意事項:在使用的時候需要特別注意下
粗看.parents()和.closest()是有點相似的,都是往上遍歷祖輩元素,但是兩者還是有區別的,否則就沒有存在的意義了
- 起始位置不同:.closest開始於當前元素 .parents開始於父元素
- 遍歷的目標不同:.closest要找到指定的目標,.parents遍歷到文檔根元素,closest向上查找,直到找到一個匹配的就停止查找,parents一直查找到根元素,並將匹配的元素加入集合
- 結果不同:.closest返回的是包含零個或一個元素的jquery對象,parents返回的是包含零個或一個或多個元素的jquery對象
具體使用可以參考右邊代碼區域: