通常在JavaScript中,我会执行以下操作来验证元素是否存在:
if (document.getElementById('lblUpdateStatus')) {
$("#lblUpdateStatus").text("");
}
但是,使用jQuery - 我怎么能做同样的事情呢?
答案 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