首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$('.parent .child') vs $('.parent').find('.child')

$('.parent .child') vs $('.parent').find('.child')
EN

Stack Overflow用户
提问于 2018-04-05 10:32:01
回答 2查看 64关注 0票数 1

代码语言:javascript
复制
$('parent child')

相同于

代码语言:javascript
复制
$('parent').find('child')

编辑:我不问速度和性能。我想知道他们是做同样的事情,还是做不同的事情。如果它们是相同的:为什么它存在,例如,如果写的时间更长,那么查找()?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-05 11:26:35

后代选择器查找()基本上都是这样做的。也就是说,遍历后代并获得匹配的元素。

后代选择器:

描述:选择所有元素,这些元素是给定祖先的后代。 版本添加: 1.0jQuery(“祖先后代”)祖先:任何有效的选择器。 子代:过滤子代元素的选择器。 元素的后代可以是该元素的子、外孙、曾孙等等。

find():

描述:获取当前匹配元素集中每个元素的后代,并由选择器、jQuery对象或元素过滤。 增加的版本: 1.0.find(选择器) 添加的版本: 1.6.find(元素) 给定一个表示一组DOM元素的jQuery对象,.find()方法允许我们在DOM树中搜索这些元素的后代,并从匹配的元素中构造一个新的jQuery对象。

后代选择器也是CSS选择器的一部分。因此,喜欢用CSS组合器编写的人使用后代选择器。喜欢可读性的人使用find()

另外,从find()文档中,我发现了两者之间的区别。

从jQuery 1.6开始,我们还可以使用给定的jQuery集合或元素筛选选择。使用与上面相同的嵌套列表,如果我们从以下开始: var allListElements = $( "li" );,然后传递这个jQuery对象以查找: $( "li.item-ii" ).find( allListElements ); --这将返回一个jQuery集合,该集合只包含项II的后代列表元素。 同样,还可以传递元素以查找: var item1 = $( "li.item-1" )[ 0 ]; $( "li.item-ii" ).find(item1).css( "background-color", "red" ); 这次电话会议的结果将是项目1的红色背景。

票数 0
EN

Stack Overflow用户

发布于 2018-04-05 10:41:12

我认为$(Parent).find(child)是比selector更快的。

试试这个:https://jsperf.com/selector-vs-find-again

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49670166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档