基于jquery中children()与find()的区别介绍


Posted in Javascript onApril 26, 2013

.children(selector) 方法是返回匹配元素集合中每个元素的所有子元素仅儿子辈)。参数可选,添加参数表示通过选择器进行过滤,对元素进行筛选。

.find(selector)方法是返回匹配元素集合中每个元素的后代参数是必选的,可以为选择器、jquery对象可元素来对元素进行筛选。

.find() 与 .children() 方法类似,不同的是后者仅沿着 DOM 树向下遍历单一层级。这里的children,我理解为儿子,只在儿子这一级遍历。看下例子:

.children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈)。参数可选,添加参数表示通过选择器进行过滤,对元素进行筛选。
.find(selector)方法是返回匹配元素集合中每个元素的后代。参数是必选的,可以为选择器、jquery对象可元素来对元素进行筛选。
.find() 与 .children() 方法类似,不同的是后者仅沿着 DOM 树向下遍历单一层级。这里的children,我理解为儿子,只在儿子这一级遍历。看下例子:   

$('ul.level-2').children().css('background-color', 'red');

这行代码的结果是,项目 A, B, C 得到红色背景。由于我们没有应用选择器表达式,返回的 jQuery 对象包含了所有子元素。如果应用一个选择器的话,那么只会包括匹配的项目。

在看个例子:

    <script>  
    $(document).ready(function(){  
        $("#abc").children(".selected").css("color", "blue");  
    });  
    </script>  
    <div id="abc">  
        <span>Hello</span>  
        <p class="selected">Hello Again</p>  
        <div><--换成<p>  
            <div class="selected">And Again</div>  
            <span class="selected">aaAnd Again</span>  
        </div><--换成</p>  
        <p>And One Last Time</p>  
    </div> 

得到的结果如下:

基于jquery中children()与find()的区别介绍

这个是预期的结果,但是如果将上面的<div>换成<p>,见上面代码注释,得到的结果却是:

基于jquery中children()与find()的区别介绍

.find()方法要注意的知识点:

1、find是遍历当前元素集合中每个元素的后代。只要符合,不管是儿子辈,孙子辈都可以。

2、与其他的树遍历方法不同,选择器表达式对于 .find() 是必需的参数。如果我们需要实现对所有后代元素的取回,可以传递通配选择器 '*'。

3、find只在后代中遍历,不包括自己。

4、选择器 context 是由 .find() 方法实现的;因此,$('li.item-ii').find('li') 等价于 $('li', 'li.item-ii')。

选择器的语法是:jQuery(selector, [context])

一般情况对jquery的选择器的用法,都是做为第一个参数的用法。其实jquery()函数的这种用法还可以传递第二个参数。传递这个参数的目的是将前面选择器限定在context这个环境中。在默认情况下,即不传第二个参数,选择器从文档根部对 DOM 进行搜索($()将在当前的HTML document中查找DOM元素);如果指定了第二个参数,如一个DOM元素集或jquery对象,那就会在这个context中查找。

下面看个例子

$("div.foo").click(function() {  
    $("span", this).addClass("bar");  
});

由于我们已经将 span 选择器限定到 this 这个环境中,只有被点击元素中的 span 会得到附加的class。
在内部,选择器 context是通过 .find() 方法实现的,因此 $("span", this) 等价于 $(this).find("span"),$('li.item-ii').find('li') 等价于 $('li', 'li.item-ii')

find()更多内容请访问:http://www.w3school.com.cn/jquery/traversing_find.asp

children()更多内容请访问:http://www.w3school.com.cn/jquery/traversing_children.asp

Javascript 相关文章推荐
jQuery下的几个你可能没用过的功能
Aug 29 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
Apr 16 Javascript
JS中dom0级事件和dom2级事件的区别介绍
May 05 Javascript
JS实现旋转木马式图片轮播效果
Jan 18 Javascript
关于vue面试题汇总
Mar 20 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
Apr 13 Javascript
Express的HTTP重定向到HTTPS的方法
Jun 06 Javascript
jQuery中$原理实例分析
Aug 13 jQuery
angular4 获取wifi列表中文显示乱码问题的解决
Oct 20 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
May 09 Javascript
Vue移动端项目实现使用手机预览调试操作
Jul 18 Javascript
vue项目中使用rem,在入口文件添加内容操作
Nov 11 Javascript
基于jQuery选择器的整理集合
Apr 26 #Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
Apr 26 #Javascript
Javascript计算两个marker之间的距离(Google Map V3)
Apr 26 #Javascript
jquery中.add()的使用分析
Apr 26 #Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 #Javascript
jquery 关于event.target使用的几点说明介绍
Apr 26 #Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
Apr 26 #Javascript
You might like
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
python自动12306抢票软件实现代码
2018/02/24 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
用Python解决x的n次方问题
2019/02/08 Python
python 自动批量打开网页的示例
2019/02/21 Python
实例详解Python装饰器与闭包
2019/07/29 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
项目合作计划书
2014/01/09 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
小学运动会加油稿
2015/07/22 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python