每当我想查找 DOM 中是否存在某个元素时,我都会使用以下代码。
if($('#target').length){
// do stuff.
}
这很好用,我在客户网站上经常使用它。
问题:这种方法有多快?当在项目中大量使用它时,对速度有什么影响?
每当我想查找 DOM 中是否存在某个元素时,我都会使用以下代码。
if($('#target').length){
// do stuff.
}
这很好用,我在客户网站上经常使用它。
问题:这种方法有多快?当在项目中大量使用它时,对速度有什么影响?
改用你会好得多if(document.getElementById('target'))
。JavaScript 总是比 jQuery 快(因为 jQuery 只是一堆隐藏在地毯下的 JavaScript)
编辑:如果你经常使用它,你可以制作一个自定义函数:
function idExists(id) {return !!document.getElementById(id);}
原生 JS 总是比通过 jQuery 查询更快。它可能不那么友好。
通过 jsperf.com 运行查询后,native ( querySelectorAll
) 比 jQuery 快 57%
但是,如果使用 id,jQuery 会比 querySelectorAll 更快。在任何 id 的情况下,document.getElementById
用于测试元素是否存在。
尝试使用 JQuery 上下文搜索 DOM 元素说:
如果您搜索的元素(输入控件)位于表中,请将表作为上下文传递:
一个简单的例子:
$(function(){
var name= $('#Name','#mytab').val();
alert(name);
});
jquery引擎在'mytab'中找到元素'Name'而不是整个表单
按照这个小提琴链接:http: //jsfiddle.net/NzbJr/10/