一泻轰、jQuery父級(jí)以及同級(jí)元素查找
1技肩、獲取父節(jié)點(diǎn)
注意與parents的區(qū)別,parents()從自身的父節(jié)點(diǎn)開始向上遍歷糕殉,返回所有祖先節(jié)點(diǎn)亩鬼,并根據(jù)選擇器對(duì)這些節(jié)點(diǎn)進(jìn)行篩選,最終返回的jQuery對(duì)象可能包含0阿蝶、1或者多個(gè)對(duì)象??,而parent它只向上搜索一層。
closest()從自身開始向上遍歷黄绩,直到找到一個(gè)適合的節(jié)點(diǎn)(一般只找到與其臨近的父級(jí)節(jié)點(diǎn))羡洁,返回的jQuery對(duì)象包含0個(gè)或者1個(gè)對(duì)象;
2爽丹、兄弟節(jié)點(diǎn) siblings??/next??(都是往下獲取節(jié)點(diǎn))
$(function(){
$('.one').siblings().css({background:'red'})
// $('.one').next().css({background:'red'})????//next只返回一個(gè)節(jié)點(diǎn)筑煮,即下一個(gè)
// $('.one').nextAll().css({background:'red'})????//nextAll返回所有之后的兄弟節(jié)點(diǎn)辛蚊,在nextAll()里可以進(jìn)行傳參 ,進(jìn)行過濾真仲。
// $('.one').nextUntil('.b').css({background:'green'})???//可傳參亦可不傳參袋马,若傳參直到哪一個(gè)終止,不包括傳參的那個(gè)值
// $('li').css({background:'orange'}).filter('.b').css({background:'pink'})
// $('li').not('.b').css({background:'pink'})
})
<ul>
? <li class="one"></li>
? <li class="b"></li>
?<li></li>
往前獲取節(jié)點(diǎn):prev()秸应,返回上一個(gè)兄弟節(jié)點(diǎn)虑凛,不是所有的兄弟節(jié)點(diǎn),而prevAll()返回所有之前的兄弟節(jié)點(diǎn)
3软啼、獲取子節(jié)點(diǎn)?
children()? 返回所有子節(jié)點(diǎn)桑谍,該方法只返回直接的孩子節(jié)點(diǎn),不會(huì)返回所有的子孫節(jié)點(diǎn)祸挪。如果我們沒有應(yīng)用選擇器表達(dá)式锣披,返回的 jQuery 對(duì)象包含了所有子元素。如果應(yīng)用一個(gè)選擇器的話贿条,那么只會(huì)包括匹配的項(xiàng)目雹仿。
fin的()是遍歷當(dāng)前元素集合中每個(gè)元素的后代。只要符合整以,不管是兒子輩盅粪,孫子輩都可以;與其他的樹遍歷方法不同,選擇器表達(dá)式對(duì)于 .find() 是必需的參數(shù)悄蕾。如果我們需要實(shí)現(xiàn)對(duì)所有后代元素的取回票顾,可以傳遞通配選擇器 '*'。find只在后代中遍歷帆调,不包括自己奠骄。