一、jQuery父級以及同級元素查找
1、獲取父節(jié)點
注意與parents的區(qū)別,parents()從自身的父節(jié)點開始向上遍歷,返回所有祖先節(jié)點,并根據(jù)選擇器對這些節(jié)點進行篩選,最終返回的jQuery對象可能包含0、1或者多個對象??,而parent它只向上搜索一層。
closest()從自身開始向上遍歷,直到找到一個適合的節(jié)點(一般只找到與其臨近的父級節(jié)點),返回的jQuery對象包含0個或者1個對象;
2、兄弟節(jié)點 siblings??/next??(都是往下獲取節(jié)點)
$(function(){
$('.one').siblings().css({background:'red'})
// $('.one').next().css({background:'red'})????//next只返回一個節(jié)點,即下一個
// $('.one').nextAll().css({background:'red'})????//nextAll返回所有之后的兄弟節(jié)點,在nextAll()里可以進行傳參 ,進行過濾。
// $('.one').nextUntil('.b').css({background:'green'})???//可傳參亦可不傳參,若傳參直到哪一個終止,不包括傳參的那個值
// $('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é)點:prev(),返回上一個兄弟節(jié)點,不是所有的兄弟節(jié)點,而prevAll()返回所有之前的兄弟節(jié)點
3、獲取子節(jié)點?
children()? 返回所有子節(jié)點,該方法只返回直接的孩子節(jié)點,不會返回所有的子孫節(jié)點。如果我們沒有應用選擇器表達式,返回的 jQuery 對象包含了所有子元素。如果應用一個選擇器的話,那么只會包括匹配的項目。
fin的()是遍歷當前元素集合中每個元素的后代。只要符合,不管是兒子輩,孫子輩都可以;與其他的樹遍歷方法不同,選擇器表達式對于 .find() 是必需的參數(shù)。如果我們需要實現(xiàn)對所有后代元素的取回,可以傳遞通配選擇器 '*'。find只在后代中遍歷,不包括自己。