CSS选择器的jQuery VS遍历(css selectors vs jquery travers

2019-09-01 13:35发布

使用jQuery有似乎是DOM内的无序列表内找到一个列表项的方法有两种。

$("ul>li");

$("ul").find("li"); 

有没有为什么,后者可能是更理想的一个原因? 这似乎是一个需要更多的代码来获得相同的结果。

Answer 1:

对。 速度。 .find()会每次都赢。 和处理速度,无异!

jsPerf速度测试,以显示我是什么意思

虽然.find()将获得的一切,是一个下级(孩子的孩子,孩子,孩子的孩子,等子女),并且>是一个直接子选择器。 它是一个更好的苹果对苹果用来比较如下:

  • $('ul li') VS $('ul').find('li')
  • $('ul > li') VS $('ul').children('li')

但如果你做.find('li')它仍然是这样做的最快方式,甚至快过.children('li')

更新jsPerf包括.children()



Answer 2:

1)他们是不一样的,第二种形式将等同于$("ul li"); 与第一个等同于$("ul").children("li")

2)如果你使用第二种形式,可以简化jQuery的解析任务。 但它使你的代码少简单,所以我不会推荐它,除非你证明速度是你的情况密切相关。 这是说,你平时有例如在一些元素缓存,或其他一些穿越功能更多的代码,证明使用的find



文章来源: css selectors vs jquery traversal