基于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异步对象(XMLHttpRequest)
Nov 17 Javascript
关于延迟加载JavaScript
May 05 Javascript
微信小程序 获取相册照片实例详解
Nov 16 Javascript
概述一个页面从输入URL到页面加载完的过程
Dec 16 Javascript
强大的 Angular 表单验证功能详细介绍
May 23 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
浅谈 Vue 项目优化的方法
Dec 16 Javascript
jsonp跨域获取百度联想词的方法分析
May 13 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 Javascript
vue组件实现移动端九宫格转盘抽奖
Oct 16 Javascript
vue表单验证之禁止input输入框输入空格
Dec 03 Vue.js
canvas绘制折线路径动画实现
May 12 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 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
2014/06/12 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
Python函数学习笔记
2008/10/07 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
python制作朋友圈九宫格图片
2019/11/03 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
企业消防安全制度
2014/02/02 职场文书
合伙购房协议样本
2014/10/06 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
三潭印月的导游词
2015/02/12 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电