- 2
- 3
- span
- 4
- 5
span2
效果:
1.4 offsetParent():寻找最近的有定位的父级
不能传参,如果父级都没有设置定位,就找html
给div.test设置定位
.test {
position: relative;
}
在div.test的子元素div.item,寻找最近的设置定位的父元素
console.log( $(‘.item’).offsetParent() );
如果我都不设置定位,找到的就是html标签:
总结:
2. children / find / end / add / addBack
html文件用的也是最开始那个
- 1
- 2
- 3
span
- 4
- 5
span2
2.1 children() 查找子元素(不是所有后代,只找直接的)
console.log( $(‘ul’).children() );//查找ul下的子元素
效果:
可以传css选择器:
console.log( $(‘ul’).children(‘.test’) );//查找ul子元素,且类名为test
效果:
2.2 find() 查找后代元素
console.log( $(‘ul’).find(‘span’) );
2.3 end() :回退,prevObject的封装
在前面调用find(),返回的jQuery对象中,有记录了父级的信息,存储在prevObject中
所以,我们可以通过调用prevObject属性,返回上一级,做一些操作
console.log($(‘ul’).find(‘li:eq(3)’));
$(‘ul’).find(‘li:eq(3)’).css(‘background’, ‘red’).prevObject.find(‘li:eq(2)’).css(‘background’, ‘pink’);
$('ul').find('li:eq(3)')
找到ul下索引为3的li,调用css()将背景颜色设置成红色,返回jQuery对象$('li:eq(3)')
;'$('li:eq(3)').prevObject'
回退一步,是$('ul')
;继续
find('li:eq(2)')
找到ul下索引为2的li,调用css()将背景颜色设置成粉色在jQuery中,end()封装了这一功能
$(‘ul’).find(‘li:eq(3)’).css(‘background’, ‘red’).end().find(‘li:eq(2)’).css(‘background’, ‘pink’);
效果一致
回退到上一级具体是哪一级,是跟find对应的,如果find查找的不是直接子元素,prevObject对应的也不是直接父元素
console.log( $(‘ul’).find(‘span’) );//span不是ul的直接子元素,prevObject回去的是ul
2.4 add() :把元素添加到已存在的元素组合中
参数可以是css选择器(selector)、原生dom、jQuery对象、html标签
如果我们想要给第一个和最后一个li加背景颜色,可能要写两行
$(‘li:first’).css(‘background’, ‘orange’);
$(‘li:last’).css(‘background’, ‘orange’);
都是给背景换橙色,分两行写不够简练,于是,用add():
$(‘li:first’).add(‘li:last’).css(‘background’, ‘orange’);
效果一致:
2.5 addBack():使用链式操作时调用,可以同时获取当前对象和前面获取的对象
- 1
- 2
- 3
- 4
- 5
span2
$(‘li:eq(1)’).css(‘background’,‘pink’).nextAll().css(‘background’,‘blue’).addBack().css(‘color’, ‘white’)
最后
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
li>1
- 2
- 3
- 4
- 5
span2
$(‘li:eq(1)’).css(‘background’,‘pink’).nextAll().css(‘background’,‘blue’).addBack().css(‘color’, ‘white’)
最后
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
前端提高篇(八十九):jQuery的DOM的遍历操作(二)
最新推荐文章于 2024-10-16 11:23:07 发布