Compruebe si un div NO existe con javascript

92

Verificar si existe un div es bastante simple

if(document.getif(document.getElementById('if')){

}

Pero, ¿cómo puedo verificar si no existe un div con la identificación dada?

Wilson
fuente

Respuestas:

151
var myElem = document.getElementById('myElementId');
if (myElem === null) alert('does not exist!');
Jimbo Jonny
fuente
1
Muchas gracias. Estoy usando ventanas modales de AngularJS y Bootstrap, por alguna razón, JQuery no pudo encontrar elementos en la ventana modal. Vanilla JS funcionó bien.
krex
75
if (!document.getElementById("given-id")) {
//It does not exist
}

La declaración document.getElementById("given-id")devuelve nullsi un elemento con given-idno existe, y nulles falso, lo que significa que se traduce en falso cuando se evalúa en una declaración if. ( otros valores falsos )

Esailija
fuente
4
Hola Esailija, creo que podrías ser la mejor respuesta si agregas detalles a por qué "!" funciona bien. Quizás diciendo que devuelve nulo, lo cual es falso. +1 de mi parte.
Alex KeySmith
4
La gente podría buscar en Google qué "!" significa en javascript o en muchos otros idiomas. No es ciencia espacial.
CommandZ
7
@CommandZ: ¿Por qué obligar a la gente a buscarlo en Google, cuando una simple explicación en línea sería más rápida? Además, creo que lo que Alex nullquiere decir es que evalúa false, lo cual no es de conocimiento común (C # es un lenguaje donde nullno es igual a falso).
Doug S
1
@DougS nullno es igual a falseincluso en la comparación de igualdad coercitiva: la llamada a las ToBoolean(null)devolucionesfalse
Esailija
10

Intente obtener el elemento con el ID y verifique si el valor de retorno es nulo:

document.getElementById('some_nonexistent_id') === null

Si está utilizando jQuery, puede hacer:

$('#some_nonexistent_id').length === 0
Hristo
fuente
2
¿Hay alguna razón por la que no puedas hacerlo !document.getElementById('foo')?
Snuffleupagus
@ElatedOwl Puede suceder que pueda realizar una operación en muchas entradas y desee comprobar si existen. document.getElementById()Entonces sería inútil .
Danon
9

Verifique mi código JavaScript y JQuery:

JavaScript:

if (!document.getElementById('MyElementId')){
    alert('Does not exist!');
}

JQuery:

if (!$("#MyElementId").length){
    alert('Does not exist!');
}
Chinmay235
fuente
4

getElementByIddevuelve nullsi no existe tal elemento.

SLaks
fuente
1

Eso funciona con:

 var element = document.getElementById('myElem');
 if (typeof (element) != undefined && typeof (element) != null && typeof (element) != 'undefined') {
     console.log('element exists');
 }
 else{
     console.log('element NOT exists');
 }
Ema.H
fuente
1

Existe una solución aún mejor. Ni siquiera necesita verificar si el elemento regresa null. Simplemente puede hacer esto:

if (document.getElementById('elementId')) {
  console.log('exists')
}

Ese código solo se registrará existsen la consola si el elemento realmente existe en el DOM.


fuente
0

Lo hago a continuación y verifico si idexiste y ejecuto la función si existe.

var divIDVar = $('#divID').length;
if (divIDVar === 0){ 
    console.log('No DIV Exist'); 
} else{  
    FNCsomefunction(); 
}   
Cyber
fuente