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("div");
var divparent = $(parents[parents.length-1]).parent();
//或
var divparent = $($("#xxx").parentsUntil("div").last()).parent();

转自:http://blog.csdn.net/alexandertech/article/details/6462585

若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏
打赏