基于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统计输入文字的个数并对其进行判断
Jan 07 Javascript
JavaScript事件类型中UI事件详解
Jan 14 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
Sep 23 Javascript
JS实现一个简单的日历
Feb 22 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
May 20 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
Aug 03 Javascript
ES6新增的math,Number方法
Aug 06 Javascript
10分钟上手vue-cli 3.0 入门介绍
Apr 04 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
Oct 08 Javascript
在Create React App中启用Sass和Less的方法示例
Jan 16 Javascript
echarts大屏字体自适应的方法步骤
Jul 12 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 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
Zend公司全球首推PHP认证
2006/10/09 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
js自定义回调函数
2015/12/13 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
在Python中使用模块的教程
2015/04/27 Python
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
Europcar比利时:租车
2019/08/26 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
农村婚礼证婚词
2014/01/10 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
军训口号
2014/06/13 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
导师工作推荐信
2015/03/27 职场文书
2015年班主任德育工作总结
2015/05/21 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js