基于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 网页水印(非图片水印)实现代码
Mar 01 Javascript
标题过长使用javascript按字节截取字符串
Apr 24 Javascript
js网页右下角提示框实例
Oct 14 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
Nov 03 Javascript
AngularJS实现表单手动验证和表单自动验证
Dec 09 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
Feb 29 Javascript
基于node实现websocket协议
Apr 25 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
Feb 22 Javascript
微信小程序三级联动地址选择器的实例代码
Jul 12 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
Apr 28 Javascript
详解node.js的http模块实例演示
Jul 12 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 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
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
Prototype Object对象 学习
2009/07/12 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
Python 迭代器工具包【推荐】
2016/05/06 Python
python之文件读取一行一行的方法
2018/07/12 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
植物选择:Botanic Choice
2017/02/15 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
考试没考好检讨书
2014/01/31 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
工作决心书
2014/03/11 职场文书
交通文明倡议书
2014/05/16 职场文书
高中综合实践活动总结
2014/07/07 职场文书
河童之夏观后感
2015/06/11 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android
Javascript的promise,async和await的区别详解
2022/03/24 Javascript
js判断两个数组相等的5种方法
2022/05/06 Javascript