jQuery中$("#content .abc") 和 $("#content").find(".abc")哪个效率更高?

138 3月之前 Javascript JQuery 前端

答案

后者,后者使用原生的 document.getElementByNameID > Tag > Class

$("#content").find(".abc").find() 方法会调用浏览器的原生方法(getElementByIdgetElementByNamegetElementByTagName 等等),所以速度较快。比 $("#content .abc") 效率快很多。

第一种慢的原因:在于 jQuery 内部使用各种选择器链条的选择顺序是从右到左,所以这条语句是先选.abc,然后再一个个过滤出父元素 #content,这导致它慢很多。