jq复习心得

jquery复习心得


近来复习了一下jquery,主要看的是Jquery in action 和 jquery基础教程(第二版)。
有一些印象挺深刻的东西,记下来。


【jq对象是dom数组的包装集。】
这个思路很重要,在解决某些问题时,它是一个重要的指导思路:想办法收集你需要的那些dom对象。


【选择器表达式是分步进行的。】
理解了这句话,就理解了eq和nth-child有什么区别了。
这句话是什么意思呢,用2个例子作对比说明吧。


$("a:even:odd") 表示的是:
1. 收集所有的a元素(DOM对象),放到数组A
2. 收集A[0],A[2],A[4]...,放到数组B
3. 收集B[1], B[3], B[5]...,放到数组C
将数组C包装成一个jq对象,就是最后结果。


$("a:odd:even") 表示的是:
1. 收集所有的a元素(DOM对象),放到数组A
2. 收集A[1],A[3],A[5]...,放到数组B
3. 收集B[0], B[2], B[4]...,放到数组C
将数组C包装成一个jq对象,就是最后结果。


再看一个常见的场合,我们要给表格隔行涂色,那么,我们要做的事情就是,要把一个table里的奇数行先选择出来。
有两种方法(假设该table的id为t,并且只有一个tbody):


$("#t tbody tr:nth-child(odd)")表示的是:
1. 从文档树里,收集所有id为t的元素(DOM对象),放到数组A。显然,数组A长度为1
2. 从数组A里,取出每个A[i],并且将A[i]的所有后代tbody元素收集起来,全部放到数组B。显然,这个B长度也是1。
3. 从数组B里,取出每个B[i],并且将B[i]的所有标签名是tr的后代元素收集起来,全部放到数组C。
4. 从数组C里,取出每个C[i], 如果C[i]满足“它是它父亲的第奇数个儿子”这个条件,就把它放到数组D
将数组D包装成一个jq对象,就是最后结果。


$("#t tbody tr:odd)的前2步是一样,关键是第3步和第4步
1. 从文档树里,收集所有id为t的元素(DOM对象),放到数组A。显然,数组A长度为1
2. 从数组A里,取出每个A[i],并且将A[i]的所有后代tbody元素收集起来,全部放到数组B。显然,这个B长度也是1。
3. 从数组B里,取出每个B[i],并且将B[i]的所有标签名是tr的后代元素收集起来,全部放到数组C
4. 从数组C里,取出C[1],c[3], C[5]....., 把它们放到数组D。
将数组D包装成一个jq对象,就是最后结果。




【容易忽略的有用的函数】
.size()   包装集的大小
.add()    扩充包装集
.filter() 过滤包装集
.map()    将包装集里的东西进行映射,最后得到的东西还是一个jq对象,这个函数需要重视,参考api手册
.each()   遍历包装集


隐含着each和add的查找函数: find,children,parent等等
















转载于:https://my.oschina.net/mustang/blog/146752

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值