jQuery向上遍歷DOM樹(shù)之parents(),parent(),closest()之間的區(qū)別
在這個(gè)sprint中,因?yàn)橐獙?xiě)前端UI,所以用到了jQuery,但是jQuery在向上遍歷DOM樹(shù)的API中,有parents()、 parent()、closest()這幾個(gè),一直不太清楚它們具體的區(qū)別,所以狠下心好好讀了一下jQuery的API文檔,并把區(qū)別記在這里,以供參考。
1.parents([selector])
本方法用于選擇給定jQuery對(duì)象中包含的DOM元素或者DOM元素集的祖先節(jié)點(diǎn),并將這些節(jié)點(diǎn)包裝成jQuery對(duì)象返回,返回的節(jié)點(diǎn)集是以從里到外的順序排序的。
同時(shí),本方法還接受一個(gè)字符串選擇器,用于從返回的節(jié)點(diǎn)集中篩選符合選擇器的子元素集。
2.parent([selector])
本方法用于選擇給定jQuery對(duì)象中包含的DOM元素或者DOM元素集的父節(jié)點(diǎn)。它和parents()不同的是,它只向上搜索一層,而parents()會(huì)搜索整個(gè)DOM樹(shù)。
本方法也可以接受一個(gè)字符串選擇器,用于篩選返回的元素。
有人可能會(huì)問(wèn):一個(gè)DOM元素的父元素不是只有一個(gè)么,為什么還要一個(gè)selector選擇器進(jìn)行篩選呢?其實(shí)一個(gè)jQuery對(duì)象可能包含有很多個(gè)DOM元素,例如$('a').parent()就是選擇所有<a>標(biāo)簽的父元素,這樣返回的就是一個(gè)元素集,所以可以進(jìn)行篩選。
3.closest(selector)
本方法用于向上遍歷jQuery對(duì)象中包含的DOM元素或者DOM元素集的祖先節(jié)點(diǎn),直到找到符合selector選擇器的節(jié)點(diǎn)為止。
它和parents()的區(qū)別:
closest()從自身開(kāi)始向上遍歷,直到找到一個(gè)適合的節(jié)點(diǎn),返回的jQuery對(duì)象包含0個(gè)或者1個(gè)對(duì)象;
parents()從自身的父節(jié)點(diǎn)開(kāi)始向上遍歷,返回所有祖先節(jié)點(diǎn),并根據(jù)選擇器對(duì)這些節(jié)點(diǎn)進(jìn)行篩選,最終返回的jQuery對(duì)象可能包含0、1或者多個(gè)對(duì)象。
一個(gè)能說(shuō)明區(qū)別的例子:
<!DOCTYPE html>
<html>
<head>
<title>a test document</title>
</head>
<body>
<div>
<p>
<span>
<b>My parents</b>
</span>
</p>
</div>
</body>
</html>
在上述文檔中:
$('b').parents()將返回:由span、p、div、body、html等元素構(gòu)造的jQuery對(duì)象;
$('b').parent()將返回:由span構(gòu)造的jQuery對(duì)象;
$('b').closest('div')將返回:由div構(gòu)造的jQuery對(duì)象。
- jQuery利用DOM遍歷實(shí)現(xiàn)商城結(jié)算系統(tǒng)實(shí)戰(zhàn)
- jQuery常見(jiàn)的遍歷DOM操作詳解
- jQuery DOM節(jié)點(diǎn)的遍歷方法小結(jié)
- 舉例講解jQuery對(duì)DOM元素的向上遍歷、向下遍歷和水平遍歷
- jQuery遍歷DOM的父級(jí)元素、子級(jí)元素和同級(jí)元素的方法總結(jié)
- jQuery遍歷DOM元素與節(jié)點(diǎn)方法詳解
- jQuery遍歷DOM節(jié)點(diǎn)操作之filter()方法詳解
- JQuery遍歷DOM節(jié)點(diǎn)的方法
- jQuery操作Dom元素與遍歷以及JS遍歷詳細(xì)講解
相關(guān)文章
40個(gè)有創(chuàng)意的jQuery圖片和內(nèi)容滑動(dòng)及彈出插件收藏集之二
在網(wǎng)頁(yè)的首頁(yè)或圖片專(zhuān)題頁(yè)面很多地方都會(huì)用到圖片滑動(dòng)插件來(lái)循環(huán)切換多張圖片,并且用戶可以點(diǎn)擊左右按鈕來(lái)切換圖片。2011-12-12jQuery綁定事件-多種實(shí)現(xiàn)方式總結(jié)
下面小編就為大家?guī)?lái)一篇jQuery綁定事件-多種實(shí)現(xiàn)方式總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-05-05兩種方法解決javascript url post 特殊字符轉(zhuǎn)義 + & #
本文主要介紹javascript使用url傳值的時(shí)候數(shù)據(jù)丟失的問(wèn)題,希望對(duì)大家有所幫助。2016-04-04基于JQuery的實(shí)現(xiàn)圖片輪播效果(焦點(diǎn)圖)
用JQuery操作DOM確實(shí)很方便,并且JQuery提供了非常人性化的API應(yīng)付我們的各種需求,其中選擇器在此示例-JQuery實(shí)現(xiàn)圖片輪播效果上體現(xiàn)的尤為出色。大大簡(jiǎn)化了js的代碼。2010-09-09jQuery.Validate表單驗(yàn)證插件的使用示例詳解
jQuery Validate 插件為表單提供了強(qiáng)大的驗(yàn)證功能,讓客戶端表單驗(yàn)證變得更簡(jiǎn)單,同時(shí)提供了大量的定制選項(xiàng),滿足應(yīng)用程序各種需求。接下來(lái)通過(guò)本文給大家介紹jQuery.Validate表單驗(yàn)證插件的使用示例,一起看看吧2017-01-01jQuery滾動(dòng)條插件nanoscroller使用指南
本文給大家介紹的nanoScrollerJS是一款使用簡(jiǎn)單方式實(shí)現(xiàn) Mac OS X Lion 系統(tǒng)滾動(dòng)條效果的jQuery插件。該滾動(dòng)條插件利用原生的滾動(dòng)條可以工作在 iPad、iPhone 和一些 Android Tablets上。2015-04-04jquery 最簡(jiǎn)單易用的表單驗(yàn)證插件
jquery 最簡(jiǎn)單易用的表單驗(yàn)證插件,不論是從應(yīng)用還是學(xué)習(xí)插件的寫(xiě)法都是值得一看的。2010-02-02jquery 學(xué)習(xí)筆記 傳智博客佟老師附詳細(xì)注釋
本人水平有限,在學(xué)習(xí)時(shí)請(qǐng)用批判的態(tài)度學(xué)習(xí),有問(wèn)題給我留言 傳智博客佟老師 jqurey 學(xué)習(xí)筆記,以及例子代碼詳細(xì)注釋。2009-07-07