0

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

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

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

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

4

3 回答 3

4

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

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

function idExists(id) {return !!document.getElementById(id);}
于 2012-08-30T00:01:30.553 回答
1

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

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

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

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

于 2012-08-30T00:04:53.360 回答
0

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

如果您搜索的元素(输入控件)位于表中,请将表作为上下文传递:

一个简单的例子:

$(function(){

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

    alert(name);
});

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

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

于 2012-08-30T12:42:51.410 回答