Jquery中parentsUntil函数调用最容易犯的三个错误
来自 :http://jquery01.diandian.com/post/2012-01-16/14500044
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();
Jquery中parentsUntil函数调用最容易犯的三个错误的更多相关文章
- jQuery中ajax请求的六种方法(三、六):load()方法
6.load()方法 load的html页面 <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...
- jQuery中ajax请求的六种方法(三、五):$.getScript()方法
5.$.getScript()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- jQuery中ajax请求的六种方法(三、四):$.getJSON()方法
4.$.getJSON()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- jQuery中ajax请求的六种方法(三、三):$.post()方法
3.$.post()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- jQuery中ajax请求的六种方法(三、二):$.get()方法
2.$.get()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- jQuery中ajax请求的六种方法(三、一):$.ajax()方法
1.基础的$.ajax()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- 前端开发入门到进阶附录一【JQuery中parent(),parents(),parentsUntil()区别和使用技巧】
JQuery中parent(),parents(),parentsUntil()区别和使用技巧:https://blog.csdn.net/china1223/article/details/5193 ...
- 深入jQuery中的Callbacks()
引入 初看Callbacks函数很不起眼,但仔细一瞅,发现Callbacks函数是构建jQuery大厦的无比重要的一个基石.jQuery中几乎所有有关异步的操作都会用到Callbacks函数. 为什么 ...
- jquery中,size()和length()方法有啥区别
jquery中,size()和length()方法有啥区别? size()是jQuery提供的函数,而length是属性(不带括号). jQuery提供的源代码是这样的: size: function ...
随机推荐
- STL-queue和循环队列基本操作的实现
2018-11-13-17:53:44 1.可增长循环队列 队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构.它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入 ...
- Beginning C# Programming with Unity
Welcome to the wonderful world of programming! In this book you’ll learn the basics of programming u ...
- vue项目引入FastClick组件解决IOS系统下h5页面中的按钮点击延迟,连续点击无反应的问题
异常描述: ios系统手机中访问h5页面,按钮点击有延迟,连续点击卡顿.无反应. 异常原因: 这要追溯至 2007 年初.苹果公司在发布首款 iPhone 前夕,遇到一个问题:当时的网站都是为大屏幕设 ...
- js正则表达式中的正向肯定预查和正向否定预查
对于没有使用过这几个表达式的人,应该对这个概念都有点不太理解,下面就以实际例子说明这几个表达式的用户. 一.?:pattern——匹配检验:会作为匹配校验,是一个非获取匹配,并出现在匹配字符结果里面, ...
- 关于客户端调用后台事件__doPostBack函数的使用
1. 动态添加生成的控件:Asp.net开发网站,最喜欢用的就是使用服务器控件,在后台进行数据操作了,你无需再去管get还是post提交,也不用去理会form,只需在后台服务器控件的事件中就可以对 ...
- 【python】理解循环:for,while
先看下for结构: #!/usr/bin/python # -*- Coding:UTF-8 -*- for i in range(1): print i 输出: 0 输入和输出: #!/usr/bi ...
- Delphi: Class Static Methods
在Delphi中,自Delphi 2007之后,支持static形式的class方法,样式比如: type TMyClass = class strict private class var FX: ...
- swift - layer - 渐变色 - CAGradientLayer
1.创建 渐变色 /// 渐变色:默认从上到下 private var gradientLayer: CAGradientLayer = { let g = CAGradientLayer() g.c ...
- 测试SD卡读写速度
执行测试命令之前,一定先清除缓存:# echo 3> /proc/sys/vm/drop_caches SD卡读取的速度# echo 3> /proc/sys/vm/drop_caches ...
- DMZ原理与应用
DMZ是英文“demilitarized zone”的缩写,中文名称为“隔离区”,“非军事化区”.它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓 ...