我想在选择和遍历dom时使用最佳实践。我听说不同的方法和选择器有不同的性能。 在JQUERY中使用遍历方法比使用选择器更快的性能是否正确?如果是这样,为什么会更快?
答案 0 :(得分:4)
Is it true that using traverse method in JQUERY is quicker performance wise than using selectors?
的是
why is it quicker?
首先,如果您只想选择一个带有id
或class
的元素,并且元素位于DOM的顶部,那么就没有性能问题可以使用它们中的任何一个。
但是当你在谈论更深入或者你的元素仍然是孩子时,可以在Dom中的任何级别,我们需要思考。
例如:
<div id="mdiv">
<ul>
<li>one<li>
<li>two<li>
<li>three<li>
</ul>
</div>
现在您要选择最后一个li
。
所以你可以选择像:
$("#mdiv ul li:last")
或,
$("#mdiv ul > li:last")
或强>
在遍历方式
$("#mydiv").find("ul").children("li").last();
现在肯定会越走越快
的 WHY ?? 强>
考虑一下字符串解析
在第一种情况下,需要解析String以翻译它的含义并相应地搜索DOM
在第二种情况下,您给出了直接命令,因此它将在没有任何解析的情况下进行DOM搜索。