Yup. Speed. .find() will win every time. And speed of processing is tantamount!
jsPerf speed test to show what I mean
Although .find() will get everything that is a subordinate (children, children of children, children of children of children, etc), and > is a direct child selector. Its a better apples-to-apples to compare either of the following:
$('ul li') vs $('ul').find('li')
$('ul > li') vs $('ul').children('li')
Although if you do .find('li') it'll still be the fastest way to do it, even faster than .children('li').
updated jsPerf to include .children()
findselects all the matching descendant elements,>is a direct child selector. This shows that you haven't read the jQuery documentation.$("ul>li")will find only firstlifor anyul, where$("ul").find("li")will find allliin eachul. You mean in first case:$("ul li")right?$("ul li")would be the correct comparison.findon each level under ul.