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

时间:2018-04-05 10:32:02

标签: jquery

$('parent child')

相同
$('parent').find('child')

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

2 个答案:

答案 0 :(得分:0)

我认为发现$(Parent).find(child)selector 更快

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

答案 1 :(得分:0)

descendant selectorfind()基本上做同样的事情。即,遍历后代并获得匹配的元素。

后代选择器

  

描述:选择作为给定后代的所有元素   的祖先。

     

版本添加:1.0jQuery("祖先后代")祖先:任何有效   选择器。

     

descendant:用于过滤后代元素的选择器。

     

元素的后代可以是孩子,孙子,   这个元素的曾孙等等。

<强>找到():

  

描述:获取当前集合中每个元素的后代   匹配的元素,由选择器,jQuery对象或元素过滤。

     

版本添加:1.0。查找(选择器)

     

版本添加:1.6.find(元素)

     

给出一个jQuery对象   表示一组DOM元素,.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项的红色背景。