如何使用jQuery验证DOM中是否存在元素?

时间:2009-06-22 13:03:11

标签: jquery

通常在JavaScript中,我会执行以下操作来验证元素是否存在:

if (document.getElementById('lblUpdateStatus')) {
    $("#lblUpdateStatus").text("");
}

但是,使用jQuery - 我怎么能做同样的事情呢?

7 个答案:

答案 0 :(得分:29)

$返回一个匹配元素数组,因此请检查length属性,你很高兴

if ($('#lblUpdateStatus').length) {
    $("#lblUpdateStatus").text("");
}

答案 1 :(得分:17)

get方法返回匹配的DOM元素:

if($("#lblUpdateStatus").get(0)){
    $("#lblUpdateStatus").click(function () { ... });
}

但我不确定这是否是一种快速的方法。

答案 2 :(得分:16)

问题是如果元素存在,jQuery将只执行请求的操作:-), 所以你只需要:

$("#lblUpdateStatus").text("");

答案 3 :(得分:11)

我认为没有理由仅仅为了它而使用jQuery。 $('#lblUpdateStatus')基本上会直接转到document.getElementById('lblUpdateStatus'),因为选择器中有一个锚点,所以你并没有真正获得任何东西。另外,仅仅检查DOM对象是否存在,将其包装在jQuery对象中会产生很多开销。

另一方面,如果只想更改对象的text属性,那么如果使用jQuery,则不需要检查它是否存在。

if (document.getElementById('lblUpdateStatus')) {
    $("#lblUpdateStatus").text("");
}

将完全与

完全相同
$("#lblUpdateStatus").text("");

答案 4 :(得分:9)

从jQuery 1.4开始,您可以使用$.contains()

var test = $("<div>");
$.contains(window.document, test[0]);  // false

$("body").append(test);
$.contains(window.document, test[0]);  // true

答案 5 :(得分:3)

我在my blog

上发了一篇关于此事的帖子
if ( $('#element_id').length > 0 )
   console.log('the element with element_id exists in the DOM');

答案 6 :(得分:0)

我会用这个。计算节点列表的长度:

document.querySelectorAll('#lblUpdateStatus').length