每当我想查找DOM中是否存在元素时,我使用以下代码。
if($('#target').length){
// do stuff.
}
这很好用,我在客户端网站上使用它很多。
问题: 这种方法有多快?在项目中大量使用它会有什么速度影响?
答案 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
来测试元素是否存在。
答案 2 :(得分:0)
尝试使用JQuery上下文搜索DOM元素:
如果一个元素u搜索说,输入控件位于表中,则将表作为上下文传递:
一个简单的例子:
$(function(){
var name= $('#Name','#mytab').val();
alert(name);
});
jquery引擎在'mytab'中找到元素'Name'而不是整个表单
按照这个小提琴链接:http://jsfiddle.net/NzbJr/10/