Compruebe si existe un div con jquery [duplicado]

Resuelto Rafael Herscovici asked hace 13 años • 3 respuestas

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?

Rafael Herscovici avatar Aug 01 '11 20:08 Rafael Herscovici
Aceptado

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.

karim79 avatar Aug 01 '2011 13:08 karim79

Si simplemente está verificando la existencia de una identificación, no es necesario ingresar a jQuery , simplemente podría:

if(document.getElementById("yourid") !== null)
{
}

getElementByIdregresa nullsi 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 === 0cuá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".

Alex KeySmith avatar Aug 01 '2011 13:08 Alex KeySmith