jQuery.length()速度含义

jQuery .length() speed implications

本文关键字:速度 length jQuery      更新时间:2023-09-26

每当我想查找DOM中是否存在元素时,我都会使用以下代码。

if($('#target').length){
    // do stuff.
}

这很好用,我在客户端网站上经常使用它。

问题:这个方法有多快?当在一个项目中大量使用这种方法时,速度会有什么影响?

您最好使用if(document.getElementById('target'))。JavaScript总是比jQuery快(因为jQuery只是一堆隐藏在地毯下的JavaScript)

编辑:如果你经常使用它,你可以制作一个自定义功能:

function idExists(id) {return !!document.getElementById(id);}

Native JS总是比通过jQuery进行查询更快。它可能没有那么友好。

通过jsperf.com运行查询后,native(querySelectorAll)比jQuery 快57%

但是,如果使用id,jQuery将比querySelectorAll更快。在任何id的情况下,使用document.getElementById来测试元素的存在。

http://jsperf.com/jquery-obj-length

尝试使用JQuery上下文搜索DOM元素,比如:

如果你搜索的元素,比如输入控件,位于表中,则将表作为上下文传递:

一个简单的例子:

$(function(){
var name= $('#Name','#mytab').val();
    alert(name);
});

jquery引擎在"mytab"中找到元素"Name",而不是整个表单

关注这个fiddle链接:http://jsfiddle.net/NzbJr/10/