值得检查元素是否先存在?

时间:2011-07-04 17:26:57

标签: javascript jquery html5 local-storage

  

上下文:我正在建立一个喜欢的人   使用html localstorage的系统   API(带有php会话回退)。如果有一个受欢迎的项目   页面,用js ...添加班级'收藏'

如果我不知道元素id是否会出现在页面上。是否最好先检查它是否存在,还是jQuery会以同样有效的方式返回false

3 个答案:

答案 0 :(得分:0)

无论哪种方式,你总是会执行$()。因此,保持一个变量引用该方法的结果,并通过检查它是否存在,不会有效率损失(或高度可忽略的损失)。

答案 1 :(得分:0)

最有可能的不是。如果jQuery找不到匹配项,它将无需枚举,只会继续。换句话说,这样的事情是不必要的:

var $favorite = $("#favorite");
if ($favorite.length) {         // Test whether it exists
  $favorite.doSomething();
}

最好写成:

$("#favorite").doSomething();

答案 2 :(得分:0)

有类似情况的测试代码on jsperf

if ($('#item_123').length === 1) {
 $('#item_123').remove();
}

<强> VS

 $('#item_123').remove(); //this turned out slower for me in chrome 13