基于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 相关文章推荐
JavaScript 事件的一些重要说明
Oct 25 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
Feb 19 Javascript
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
3个可以改善用户体验的AngularJS指令介绍
Jun 18 Javascript
Javascript中的数组常用方法解析
Jun 17 Javascript
JavaScript对象封装的简单实现方法(3种方法)
Jan 03 Javascript
js实现炫酷的左右轮播图
Jan 18 Javascript
node.js实现微信JS-API封装接口的示例代码
Sep 06 Javascript
ES6中的Promise代码详解
Oct 09 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
微信小程序中悬浮窗功能的实现代码
Aug 02 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
Nov 30 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
10条PHP编程习惯助你找工作
2008/09/29 PHP
PHP类中Static方法效率测试代码
2010/10/17 PHP
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
pjblog中的UBBCode.js
2007/04/25 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
一个超级简单的python web程序
2014/09/11 Python
Python 正则表达式(转义问题)
2014/12/15 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
python实现飞船大战
2020/04/24 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
Python urllib3软件包的使用说明
2020/11/18 Python
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
中医药大学市场营销专业自荐信
2013/09/29 职场文书
高考升学宴答谢词
2015/01/20 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
2015年小学生暑假总结
2015/07/13 职场文书