基于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 相关文章推荐
js 实现菜单左右滚动显示示例介绍
Nov 21 Javascript
5个JavaScript经典面试题
Oct 13 Javascript
基于豆瓣API+Angular开发的web App
Jan 02 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
Feb 25 Javascript
详解jQuery中的empty、remove和detach
Apr 11 Javascript
通过javascript进行UTF-8编码的实现方法
Jun 27 Javascript
BootStrap Typeahead自动补全插件实例代码
Aug 10 Javascript
学习vue.js表单控件绑定操作
Dec 05 Javascript
浅谈webpack打包之后的文件过大的解决方法
Mar 07 Javascript
vue实现点击当前标签高亮效果【推荐】
Jun 22 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
React-vscode使用jsx语法的问题及解决方法
Jun 21 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
77A一级收信机修理记
2021/03/02 无线电
认识并使用PHP超级全局变量
2010/01/26 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
2015/11/11 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
JavaScript的document对象和window对象详解
2010/12/30 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
Vue.js实现可编辑的表格
2019/12/11 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
举例讲解Python中的list列表数据结构用法
2016/03/12 Python
深入浅析python 中的匿名函数
2018/05/21 Python
python中scikit-learn机器代码实例
2018/08/05 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
Python如何对齐字符串
2020/07/30 Python
欧克利英国官网:Oakley英国
2019/08/24 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
学校欢迎标语
2014/06/18 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
爱国教育主题班会
2015/08/14 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL
React更新渲染原理深入分析
2022/12/24 Javascript