Compruebe si existe un div con jquery [duplicado]
Sí, sé que esto se ha preguntado mucho. Pero me confunde, ya que los resultados en Google para esta búsqueda muestran diferentes métodos (enumerados a continuación)
$(document).ready(function() {
if ($('#DivID').length){
alert('Found with Length');
}
if ($('#DivID').length > 0 ) {
alert('Found with Length bigger then Zero');
}
if ($('#DivID') != null ) {
alert('Found with Not Null');
}
});
¿Cuál de las 3 es la forma correcta de comprobar si existe el div?
EDITAR: Es una lástima ver que la gente no quiere aprender cuál es el mejor enfoque entre los tres métodos diferentes. En realidad, esta pregunta no trata sobre "Cómo comprobar si existe un div", sino sobre qué método es mejor y, si alguien pudiera explicar, ¿por qué es mejor?
La primera es la más concisa, yo elegiría esa. Los dos primeros son iguales, pero el primero es un poco más corto, por lo que ahorrarás bytes. La tercera es completamente incorrecta, porque esa condición siempre se evaluará como verdadera porque el objeto nunca será nulo o falso.
Si simplemente está verificando la existencia de una identificación, no es necesario ingresar a jQuery , simplemente podría:
if(document.getElementById("yourid") !== null)
{
}
getElementById
regresa null
si no se puede encontrar.
Referencia .
Sin embargo, si planeas utilizar el objeto jQuery más adelante, te sugiero:
$(document).ready(function() {
var $myDiv = $('#DivID');
if ( $myDiv.length){
//you can now reuse $myDiv here, without having to select it again.
}
});
Un selector siempre devuelve un objeto jQuery , por lo que no debería ser necesario compararlo null
(me interesaría si hay un caso límite en el que deba verificarse null
, pero no creo que lo haya).
Si el selector no encuentra nada, entonces length === 0
cuál es "falso" (cuando se convierte a bool es falso). Entonces, si encuentra algo, entonces debería ser "veraz", por lo que no es necesario verificar > 0. Solo por su "veracidad".