Jquery中parentsUntil函數調用最容易犯的三個錯誤

Jquery的parentsUntil()方法用於查找Jquery對象的祖先,使用的時候有三個問題一定要注意:

1) parentsUntil返回的是一個數組,而不是單個對象。關於這個,注意’parents’是複數就行了,表示它會返回一系列的祖先元素,在數組中越外層的元素的下標越大。

2) parentsUntil返回的數組中剛好不包括滿足選擇器參數條件的對象。這個有點奇怪,很容易產生誤導。

3) parentsUntil返回的數組中都不是Jquery封裝的對象,需要再次封裝它們才能使用Jquery提供的API。這個更奇怪,連官方文檔都沒有說明這一點,尤其是在另一個API調用 parent()返回的是Jquery對象的情況下,parentsUntil()的這種返回類型很容易產生誤導。

舉例來說,如果想獲得包含某元素(id=”xxx”)的最近的一個div容器,

錯誤寫法1:

var divparent = $(“#xxx”).parentsUntil(“div”); //parentsUntil返回的是一個數組而不是單個元素

錯誤的寫法2:

var parents = $(“#xxx”).parentsUntil(“div”);
var divparent = parents[parents.length-1]; //parentsUntil返回的數組中剛好不包括滿足選擇器參數條件的對象

錯誤的寫法3:

var parents = $(“#xxx”).parentsUntil(“div”);
var divparent = parents[parents.length-1].parent(); //返回的數組中都不是Jquery封裝的對象,需要再次封裝它們才能使用Jquery提供的parent()調用。

正確寫法:

var parents = $(“#xxx”).parentsUntil();
var divparent = $(parents[parents.length-1]).parent();

原文地址:http://jquery01.diandian.com/post/2012-01-16/14500044

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章