jQuery .length()速度影响

时间:2012-08-29 23:59:41

标签: javascript jquery

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

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

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

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

3 个答案:

答案 0 :(得分:4)

使用if(document.getElementById('target'))代替你会好得多。 JavaScript总是比jQuery更快(因为jQuery只是隐藏在地毯下的一堆JavaScript)

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

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

答案 1 :(得分:1)

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

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

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

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

答案 2 :(得分:0)

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

如果一个元素u搜索说,输入控件位于表中,则将表作为上下文传递:

一个简单的例子:

$(function(){

var name= $('#Name','#mytab').val();

    alert(name);
});

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

按照这个小提琴链接:http://jsfiddle.net/NzbJr/10/