jQuery遍歷DOM元素與節(jié)點(diǎn)方法詳解
本文實(shí)例講述了jQuery遍歷DOM元素與節(jié)點(diǎn)方法。分享給大家供大家參考,具體如下:
一、向上遍歷--祖先元素
① $(selector).parent([filter]):返回selector匹配元素的直接父元素,方法可以接受一個(gè)過(guò)濾selector來(lái)過(guò)濾返回的父元素。
② $(selector).parents([filter]):返回匹配元素的所有祖先節(jié)點(diǎn),一直向上直到文檔根元素html,方法可以接受一個(gè)過(guò)濾selector來(lái)過(guò)濾返回的祖先節(jié)點(diǎn)。
備注:parent與parents的區(qū)別,parent返回直接父節(jié)點(diǎn),parents返回所有的祖先節(jié)點(diǎn),另外$("html").parent()返回document節(jié)點(diǎn),而$("html").parents()則返回空。
③ $(selector).parentUntil([ancestorSelector][,filter]):返回匹配節(jié)點(diǎn)與ancestorSelector之間的所有祖先節(jié)點(diǎn),注意不包括ancestorSelector匹配的幾點(diǎn),方法可以接受一個(gè)過(guò)濾selector來(lái)過(guò)濾返回的祖先節(jié)點(diǎn),如果ancestorSelector為空或者在其祖先節(jié)點(diǎn)中沒(méi)有找到匹配ancestorSelector的元素則返回所有祖先節(jié)點(diǎn)等同于parents()方法。
$(selector).parentUtil(element[,ancestorSelector]):用法及含義同上。
④ $(selector).offsetParent():返回匹配元素的最近的一個(gè)定位的祖先元素,所謂定位祖先元素是指其CSS position屬性設(shè)置為relative,absolute,fixed,主要在動(dòng)畫(huà)演示過(guò)程中計(jì)算元素的偏移及位置具有很大的作用。
⑤ $(selector).closest(ancestorSelector[,context]):獲取最近的一個(gè)匹配ancestorSelector的祖先元素,方法可以接受一個(gè)參數(shù)context來(lái)控制搜索的范圍。同parents方法有如下區(qū)別:
a.closest從來(lái)當(dāng)前元素本身開(kāi)始向上搜索
parents則從父節(jié)點(diǎn)元素開(kāi)始。
b.closest沿DOM樹(shù)向上遍歷,直到找到匹配ancestorSelector的一個(gè)元素位置
parents沿DOM樹(shù)向上遍歷,直到文檔的根元素為止,將每個(gè)祖先元素添加到一個(gè)臨時(shí)集合;如果應(yīng)用了選擇器,則會(huì)基于該選擇器對(duì)這個(gè)集合進(jìn)行篩選
c.closest返回包含0個(gè)或者一個(gè)元素的jQuery對(duì)象
parents返回包含0個(gè)、一個(gè)或多個(gè)元素的jQuery對(duì)象
其它變形用法:
$(selector).closest(ancestorSelectors[,context]); $(selector).closest(jQuery object); $(selector).closest(element)
二、向下遍歷--子孫元素
① .children([childrenSelector]):返回元素的直接子元素,方法可以接受一個(gè)參數(shù)來(lái)過(guò)濾返回的子元素。
② .find(descendantSelector):返回元素的匹配decendantSelector的所有后代元素,一直向下知道最后一個(gè)后代。
其它變形用法:
.find(jQuery object); .find(element);
③ .contents():返回元素的所有子元素,同children的區(qū)別是contents包含text節(jié)點(diǎn)及comment節(jié)點(diǎn)。
三、同級(jí)遍歷--兄弟元素
① .siblings([selector]):返回當(dāng)前元素的所有兄弟元素,方法可以接收一個(gè)可選參數(shù)來(lái)過(guò)濾返回的兄弟元素。
② .next([selector]):返回當(dāng)前元素的下一個(gè)兄弟元素,方法可以接受一個(gè)可選參數(shù)來(lái)過(guò)濾返回的兄弟元素。
③ .nextAll([selector]):返回當(dāng)前元素后面的所有兄弟元素,方法可以接受一個(gè)可選參數(shù)來(lái)過(guò)濾返回的兄弟元素。
④ .nextUntil([selector][,filter]):返回當(dāng)前元素的所有兄弟元素直到遇到匹配selector條件的兄弟元素,方法可以接受一個(gè)可選參數(shù)filter來(lái)過(guò)濾返回的兄弟元素。
⑤ .prev/prevAll/prevUntil與next/nextAll/nextUntil用法相同,作用相近,只是搜索的方向相反。
四、過(guò)濾
① .filter(selector):從當(dāng)前匹配的元素集合中篩選中符合selector條件的子集合,用的用來(lái)減少匹配的范圍。
.filter(function(index)):根據(jù)回調(diào)函數(shù)來(lái)過(guò)濾當(dāng)前匹配的元素集合,回調(diào)函數(shù)傳入?yún)?shù)index是指元素在集合中的索引,在函數(shù)體內(nèi)可用this來(lái)代表元素,函數(shù)返回true/false,如果返回true,則保留子元素,否則排除子元素。
其它變形用法:
.filter(element|jQueryObject)
② .first():返回當(dāng)前匹配元素集合中的第一個(gè)元素。
③ .last():返回當(dāng)前匹配元素集合中的最后一個(gè)元素。
④ .eq(index/-index):返回當(dāng)前匹配元素集合指定位置的元素,索引從0開(kāi)始,負(fù)數(shù)表示從尾到頭的順序進(jìn)行排序。
⑤ .has(selector/element):從當(dāng)前元素集合中返回具有特定子元素的元素集合,排除不具備對(duì)應(yīng)子元素的元素。子元素可以用參數(shù)selector或者元素對(duì)象來(lái)進(jìn)行匹配。
⑥ .is(selector|function(index)|element|jQueryObject):根據(jù)一個(gè)選擇器或者回調(diào)函數(shù)或者元素或者jQuery對(duì)象來(lái)檢驗(yàn)元素集合,如果其中至少包含一個(gè)符合給定表達(dá)式的元素則返回true,否則返回false,另外如果當(dāng)前元素集合為空或者表達(dá)式為空,則返回false。這個(gè)方法一般用在回調(diào)函數(shù)中例如事件處理handler里面,來(lái)判斷this是否為某個(gè)特定元素
⑦ .map(callback(index,domElement)):將當(dāng)前匹配的元素?cái)?shù)組通過(guò)回調(diào)函數(shù)返回值轉(zhuǎn)化為另外一個(gè)對(duì)象數(shù)組(不管是否為dom元素),如果想轉(zhuǎn)化普通jQueryObject數(shù)組可以使用jQuery.map(array,callback(objectOfArray,indexOfArray))方法來(lái)實(shí)現(xiàn)。
⑧ .not(selector|elements|function(index)|jQuery object):從當(dāng)前匹配的元素?cái)?shù)組中刪除符合參數(shù)調(diào)節(jié)的元素,參數(shù)可以是selector、DOM element、普通的jQuery對(duì)象以及一個(gè)返回布爾變量的回調(diào)函數(shù)。
⑨ .slice(start[,end]):從當(dāng)前匹配的元素集合中獲取指定范圍的一個(gè)子集,start及end如果為負(fù)數(shù)則獲取元素方向從尾到頭。
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery遍歷算法與技巧總結(jié)》、《jQuery表格(table)操作技巧匯總》、《jQuery拖拽特效與技巧總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常見(jiàn)經(jīng)典特效匯總》、《jQuery動(dòng)畫(huà)與特效用法總結(jié)》、《jquery選擇器用法總結(jié)》及《jQuery常用插件及用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
- 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)操作之filter()方法詳解
- JQuery遍歷DOM節(jié)點(diǎn)的方法
- jQuery向上遍歷DOM樹(shù)之parents(),parent(),closest()之間的區(qū)別
- jQuery操作Dom元素與遍歷以及JS遍歷詳細(xì)講解
相關(guān)文章
jQuery獲得document和window對(duì)象寬度和高度的方法
這篇文章主要介紹了jQuery獲得document和window對(duì)象寬度和高度的方法,涉及jQuery獲取document和window對(duì)象屬性的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03原生js和jQuery寫的網(wǎng)頁(yè)選項(xiàng)卡特效對(duì)比
本文實(shí)例中主要是通過(guò)判斷點(diǎn)擊菜單在菜單列表中的索引位置來(lái)顯示或隱藏選項(xiàng)區(qū).原生js還有很多種實(shí)現(xiàn)方法(藍(lán)色理想中搜索),為了與jQ版思路保持一致,本文實(shí)例用的是循環(huán)判斷.有需要的小伙伴可以參考下2015-04-04jquery獲取ASP.NET服務(wù)器端控件dropdownlist和radiobuttonlist生成客戶端HTML標(biāo)簽
jquery獲取ASP.NET服務(wù)器端控件dropdownlist和radiobuttonlist生成客戶端HTML標(biāo)簽后的value和text值2010-06-06jQuery+Ajax+js實(shí)現(xiàn)請(qǐng)求json格式數(shù)據(jù)并渲染到html頁(yè)面操作示例
這篇文章主要介紹了jQuery+Ajax+js實(shí)現(xiàn)請(qǐng)求json格式數(shù)據(jù)并渲染到html頁(yè)面操作,結(jié)合實(shí)例形式分析了jQuery+Ajax請(qǐng)求json格式數(shù)據(jù)并渲染到html頁(yè)面相關(guān)步驟與操作技巧,需要的朋友可以參考下2020-06-06jQuery 添加/移除CSS類實(shí)現(xiàn)代碼
在網(wǎng)頁(yè)設(shè)計(jì)中,我們常常要使用Javascript來(lái)改變頁(yè)面元素的樣式。2010-02-02jCallout 輕松實(shí)現(xiàn)氣泡提示功能
在提交表單前、焦點(diǎn)轉(zhuǎn)移后或者 keyup 時(shí)往往需要對(duì)輸入的文本就行檢驗(yàn),如果輸入內(nèi)容不符合相關(guān)約定則要進(jìn)行提示或警告,有一個(gè)叫 jCallout 的插件可以輕松實(shí)現(xiàn)該功能,該插件基于 jQuery 使用,所以使用前需要添加引用 jQuery2013-09-09jQuery實(shí)現(xiàn)tab選項(xiàng)卡效果的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)tab選項(xiàng)卡效果的方法,實(shí)例分析了jquery實(shí)現(xiàn)tab選項(xiàng)卡切換效果的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07jQuery實(shí)現(xiàn)鼠標(biāo)懸停3d菜單展開(kāi)動(dòng)畫(huà)效果
本文主要介紹了jQuery鼠標(biāo)懸停3d菜單展開(kāi)動(dòng)畫(huà)效果的示例代碼,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01jQuery實(shí)現(xiàn)圖像旋轉(zhuǎn)動(dòng)畫(huà)效果
jquery動(dòng)畫(huà)旋轉(zhuǎn)效果在項(xiàng)目中經(jīng)常遇到這樣的需求,下面小編給大家分享具體實(shí)現(xiàn)代碼,感興趣的朋友一起學(xué)習(xí)吧2016-05-05