css选择器与jquery遍历
使用jquery,似乎有两种方法可以在DOM中的无序列表中查找列表项。
$("ul>li");
和
$("ul").find("li");
有没有理由说后者可能更合适? 似乎需要更多代码来获得相同的结果。
对。 速度。 .find()
每次都会赢。 加工速度无异于此!
jsPerf速度测试显示我的意思
虽然.find()
将获得下属的所有内容(儿童,孩子的孩子,孩子的孩子等),并且>
是直接的子选择器。 它是一个更好的苹果对苹果比较以下任何一个:
-
$('ul li')
vs$('ul').find('li')
-
$('ul > li')
vs$('ul').children('li')
虽然你做.find('li')
它仍然是最快的方式,甚至比.find('li')
更快。
更新了jsPerf以包含.children .children()
1)它们不一样,第二种forms相当于$("ul li");
而第一个相当于$("ul").children("li")
2)如果您正在使用第二种forms,则可以简化jQuery的解析任务。 但它会使你的代码变得不那么简单,所以除非你certificate速度与你的情况非常相关,否则我不推荐它。 这就是说你通常有更多的代码,例如一些元素缓存,或其他一些遍历函数,certificate使用find
。