何时使用jQuery的.find()

Kyl*_*uir 6 javascript jquery jquery-selectors

.find()什么时候会使用jQuery ?

例如,

$('tr').find('.someClass'); 相当于 $('tr .someClass')

那么,什么时候你会使用.find()直选择器的一个很好的例子呢?

哪个,性能更高?选择器比选择器更快.find()吗?

Pla*_*dea 6

答案是尽可能的.

它总是比具有子/多项/ CSS /上下文选择器更高效,并且是性能最快的遍历机制.

jsPerf显示我的意思.

您可能只考虑不使用它的唯一时间是您只想选择直接孩子的项目,并且这些孩子碰巧与您不想选择的孩子一样.这是一项工作.children(),但是非常罕见.

  • @KevinB完全正确.在原始问题中,我只能假设页面上有多个`tr`.`find`可能会慢一些. (2认同)

use*_*654 5

这取决于你选择的是什么.

随着所选元素数量的$('tr')增加,.find将变得更加昂贵.

通常,最好做任何会导致触及最少数量元素的事情.当你只处理2个元素(父母和孩子)时,.find显然会更快,因为它只是一个父母得到它的孩子并过滤到选择器.但是当有200个父母时,它将不得不迭代所有200个并在每个中搜索孩子.通过使用选择器开始,您永远不会触及所有父母,您只需直接转到子元素.即使这样,一个与另一个的性能也会因浏览器而异.

花更少的时间担心这些微观优化,直到它成为你试图解决的真正问题,并且在那时,解决这个问题,而不是试图找出一个遵循的一般规则.