我正在读一本书,他们展示了几个如何在DOM上选择元素的例子,但他们建议总是在选择器上使用Jquery trasversing方法,例如,如果你在div中有一个列表而不是使用
$("#myList > li")
你应该使用
$("#myList").children("li")
大多数时候我使用第一个超过后者,作者说第二个是首选的,效率更高但他没有解决原因,有人可以解释其背后的原因吗?
答案 0 :(得分:5)
我认为在这种特殊情况下性能的差异归结为:
document.querySelectorAll('#myList > li');
// VS
document.getElementById('myList').children;
此处的效果测试:http://jsperf.com/ae-d2-56-2a-e2-36-a3-d3-52-74
jQuery可能会检查它是否为li
给定选择器,但仍然会比querySelectorAll
或Sizzle更快。