基于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 对象的定义方法
Jan 10 Javascript
不能再简单的无闪刷新验证码原理很简单
Nov 05 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
在JavaScript并非所有的一切都是对象
Apr 11 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
Mar 01 Javascript
JavaScript实现复制文章自动添加版权
Aug 02 Javascript
js原生实现FastClick事件的实例
Nov 20 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
Dec 22 Javascript
assert()函数用法总结(推荐)
Jan 25 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 jQuery
JavaScript之DOM插入更新删除_动力节点Java学院整理
Jul 03 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
Oct 15 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
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
Node.js搭建小程序后台服务
2018/01/03 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
Python发送Email方法实例
2014/08/21 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
2015年乡镇工作总结范文
2015/04/22 职场文书
单位综合评价意见
2015/06/05 职场文书
聘任合同书
2015/09/21 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
创业计划书之电动车企业
2019/10/11 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
Python OpenCV超详细讲解基本功能
2022/04/02 Python