我有一个 jQuery 选择器:
$('#myId span')
那真的是一只表演犬吗?
$('#myId').find('span')
第一个显然写起来更干净一些,如果可能的话,我想坚持下去。
我有一个 jQuery 选择器:
$('#myId span')
那真的是一只表演犬吗?
$('#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')
,在某些情况下可能会更快,因为它只会下降一个级别以仅查找子级(而不是 find ,它会继续运行)。