remove data attribute jquery html exists

data - Compruebe si existe un div con jquery



parent jquery (3)

Posible duplicado:
¿Existe una función “existe” para jQuery?

Sí, sé que esto se ha pedido 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 los 3 es la forma correcta de verificar si existe el div?

EDIT: Es una pena ver que las personas no quieren aprender cuál es el mejor enfoque de los tres métodos diferentes. Esta pregunta no está realmente en "Cómo verificar si existe un div", sino sobre qué método es mejor y, si alguien pudiera explicarlo, ¿por qué es mejor?


Como mencionó karim79, el primero es el más conciso. Sin embargo, podría argumentar que el segundo es más comprensible, ya que algunos programadores de Javascript / jQuery no lo entienden o reconoce que los valores falsos o no cero se evalúan como true en las sentencias if. Y por eso, el tercer método es incorrecto.


El primero es el más conciso, me gustaría ir con eso. Los dos primeros son iguales, pero el primero es un poco más corto, por lo que ahorrará en bytes. El tercero es claramente erróneo, porque esa condición siempre se evaluará como verdadera porque el objeto nunca será nulo o falso para esa materia.


Si simplemente está comprobando la existencia de una ID, no hay necesidad de ingresar a jQuery , simplemente podría:

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

getElementById devuelve null si no se puede encontrar.

Reference .

Sin embargo, si planea usar el objeto jQuery más adelante, sugeriría:

$(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 verificar contra null (me interesaría si hay un caso de borde en el que necesita verificar si es null , pero no creo que lo haya).

Si el selector no encuentra nada, la length === 0 que es "falsy" (cuando se convierte en bool es false). Por lo tanto, si encuentra algo, debería ser "sincero", por lo que no necesita verificar> 0. Solo por su "veracidad"