remove - saber si existe elemento jquery
¿Cómo verificar que un elemento existe en el DOM usando jQuery? (7)
Normalmente, en JavaScript, hago algo como lo siguiente para verificar que un elemento existe:
if (document.getElementById(''lblUpdateStatus'')) {
$("#lblUpdateStatus").text("");
}
Pero, usando jQuery, ¿cómo puedo hacer el mismo tipo de cosas?
A partir de jQuery 1.4 puede usar $.contains()
.
var test = $("<div>");
$.contains(window.document, test[0]); // false
$("body").append(test);
$.contains(window.document, test[0]); // true
El método get devuelve los elementos DOM coincidentes:
if($("#lblUpdateStatus").get(0)){
$("#lblUpdateStatus").click(function () { ... });
}
pero no estoy seguro si es un método rápido.
El problema es que jQuery solo realizará la acción solicitada si el elemento existe :-), por lo que solo necesita:
$("#lblUpdateStatus").text("");
Escribí un post sobre eso en mi blog.
if ( $(''#element_id'').length > 0 )
console.log(''the element with element_id exists in the DOM'');
No veo ninguna razón para usar jQuery por el simple hecho de hacerlo. El $(''#lblUpdateStatus'')
irá directamente a document.getElementById(''lblUpdateStatus'')
, ya que el selector tiene un ancla, así que realmente no está ganando nada. Además, solo para verificar si el objeto DOM existe, envolverlo en un objeto jQuery creará una gran cantidad de sobrecarga.
Por otro lado, si lo único que desea es cambiar la propiedad de texto del objeto, no necesita verificar su existencia si usa jQuery.
if (document.getElementById(''lblUpdateStatus'')) {
$("#lblUpdateStatus").text("");
}
hará exactamente lo mismo que tener solo
$("#lblUpdateStatus").text("");
Si la cadena HTML se puede pasar a $()
, puede usar parent.length
:
$(''<div>'').length // 1, but it not exist on page
pero
$(''<div>'').parent().length // 0
$
devuelve una serie de elementos coincidentes, así que verifique la propiedad length y listo.
if ($(''#lblUpdateStatus'').length) {
$("#lblUpdateStatus").text("");
}