.parent(expr) - 查找父親,只查一級,正宗的父親,表達是應該很少用。
.parents(expr) - 加了複數,就變成找多個父親了,從父親開始找,一直往上查,查到根元素,然後透過expr表達式過濾。
.closest(expr) - 這個跟parents類似,但是這個是從當前元素開始查起,並且查到符合表達式就會停止。
.parentsUntil(expr) - 跟parents類似,區別是不會查到根元素,遇到符合expr就會停止了,同時不包括符合expr的那個元素。
測試範例:
<body> <div id="main"> <div id="hot" class="rightbar"> <h2>熱門推薦</h2> <ul> <li> <ul> <li class="p">融氏橄欖油</li> <li>幫寶适紙尿褲</li> <li id="h">有機大米</li> <li>妙潔垃圾袋</li> <li>優樂美奶茶</li> <li>親親果凍</li> </ul> </li> <li> <ul> <li>海飛絲洗頭膏</li> <li>六神花露水</li> <li>舒膚佳香皂</li> <li>心相印紙巾</li> <li>哇哈哈礦泉水</li> <li>王老吉</li> </ul> </li> </ul> </div> </div> </body>
<script language="javascript" type="text/javascript"> //此處为jQuery代碼 </script>測試1:找到id = "h"元素的父元素並設置背景色為灰。
$("#h").parent().css("background-color","#ccc");效果:
上面的代碼等價於:
$("#h").parent("ul").css("background-color","#ccc");如果要找爺爺輩的:
$("#h").parent("li").css("background-color","#ccc");則會失敗。
測試2:找到id = "h"的祖輩元素中符合是ul標籤的元素,設置背景色為灰。
$("#h").parents("ul").css("background-color","#ccc");效果:
parents不但找到了父親,還找到了曾祖父,但是closest就不會,因為closest找到了父親就會停止找了。
測試3:用closest找到id = "h"的祖輩元素中符合是ul的標籤元素,設置背景色為灰。
$("#h").parents("li").css("background-color","#ccc");效果:
$("#h").closest("li").css("background-color","#ccc");效果:
測試5:找到id = "h"的父元素中是ul標籤的元素,並設置背景色為灰,目的是測試parentsUntil查找到的expr就停止了,但不包含符合expr的那個元素,比對測試1。
$("#h").parentsUntil("ul").css("background-color","#ccc");效果:
沒出來,其實已經找到了,只不過把找到的ul給排除了,不信找找爺爺輩的li試試。
$("#h").parentsUntil("li").css("background-color","#ccc");效果:
出來了吧,其實這次變灰的是ul,因為把li排除了。
測試6:測試parents和parentsUntil的區別,parentsUntil找到就停止了,parents會一直往上找,找到id = "h"的父輩元素中是li標籤的元素,並設置背景色為灰。
這個看測試2和測試5的第一個就能看出來。
沒有留言:
張貼留言