Jquery的parentsUntil()方法用來找出Jquery物件的祖先,使用的時候有三個問題一定要注意:
#
1) parentsUntil回傳的是一個陣列,而不是單一物件
關於這個,注意'parents'是複數就行了,表示它會傳回一系列的祖先元素,在陣列中越外層的元素的下標越大。
2) parentsUntil回傳的陣列中剛好不包括滿足選擇器參數條件的物件
這個有點奇怪,很容易產生誤導。
3) parentsUntil傳回的陣列中都不是Jquery封裝的對象,需要再次封裝它們才能使用Jquery提供的API
#這個比較奇怪,連官方文件都沒有說明這一點,尤其是在另一個API呼叫parent()回傳的是Jquery物件的情況下,parentsUntil()的這個回傳類型很容易產生誤導。
舉例來說,如果想要得到包含某元素(id="xxx")的最近的一個p容器,
錯誤寫法1:
var pparent = $("#xxx").parentsUntil("p"); //parentsUntil回傳的是一個陣列而不是單一元素
錯誤的寫法2:
#var parents = $("#xxx").parentsUntil("p");
var pparent = parents[parents.length-1]; //parentsUntil傳回的陣列中剛好不包含符合選擇器參數條件的物件
##錯誤的寫法3:
var parents = $("#xxx").parentsUntil("p");
var pparent = parents[parents.length- 1].parent(); //傳回的陣列中都不是Jquery封裝的對象,需要再次封裝它們才能使用Jquery提供的parent()呼叫。
正確寫法:
#var parents = $("#xxx").parentsUntil();
var pparent = $(parents[parents.length-1]).parent();
以上是有關Jquery中parentsUntil呼叫易犯錯的三個地方總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!