jQuery后代选择器性能



有一个jQuery选择器:

$('#myId span')

那真的是一只表演狗吗vs:

$('#myId').find('span')

第一个显然写起来更干净一些,如果可能的话,我想坚持使用

测试:http://jsperf.com/descend-from-id-vs-select-and-find/3

$('#myId span')将导致jQuery使用其Sizzle选择器引擎解析字符串,从右向左读取,从span开始搜索。

$('#myId').find('span')将导致jQuery立即选择#myId(绕过步骤与Sizzle解析),然后遍历DOM,多个级别,找到所有的后代。

所以后者更快。

您也可以尝试$('#myId').children('span'),它在某些情况下可能更快,因为它只会下降一个级别来查找子节点(而不是查找,它会继续查找)。

最新更新