jQuery中find方法和filter方法的区别 00 笨笨剥壳

 我来答
就烦条0o
2016-08-01 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46487
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
1、调用这两个函数,返回的值不一样
2、find()会在div元素内寻找 class为**的元素,而filter()则是筛选div的class为***的元素
3、他们是jQuery里常用的2个方法,但是功能不一样
4、find:指定的对象集合下进行查找;filter:指定的对象集合进行过滤
DoubleDimos
2016-08-04 · TA获得超过858个赞
知道小有建树答主
回答量:1053
采纳率:75%
帮助的人:596万
展开全部

find和filter最大的区别在于操作对象。

find的操作对象是指向该选择器选择的元素的所有子元素,而且不仅仅是第一级子元素,是所有的子元素。这和起着大致功能的children不同,children只会选择第一级子元素。

而filter的操作对象则是改选择器选择的元素的集合。filter起到的作用是把该集合进行缩小,并进行链式传递,也就是向后传递。

说起来可能感觉很模糊,举个例子就明白了。

首先是html代码

<div class="out" id="one">
    <div class="in">
    <div>
</div>
<div class="out in" id="two">
    <div class="in">
    <div>
</div>

首先,测试find,代码如下

$(".out").find(".in")

这样返回的就是里层的div元素,而filter呢?

$(".out").filter(".in")

这样返回的就不再试里层的div,而是id为two的div。因为filter执行的操作是将范围缩小。$(".out")返回了所有的class为out的元素,传递给filter,filter接收到这个集合,并对其中的class包含了in的元素进行删选。这样就得到了id为two的元素。

这就是二者的区别

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式