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调用易犯错的三个地方总结的详细内容,更多请关注Work网其它相关文章!

09-16 10:57