Controlla se un div NON esiste con javascript


92

Controllare se esiste un div è abbastanza semplice

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

}

Ma come posso verificare se non esiste un div con l'id dato?

Risposte:


151
var myElem = document.getElementById('myElementId');
if (myElem === null) alert('does not exist!');

1
Grazie molto. Sto usando AngularJS e le finestre modali Bootstrap, per qualche motivo JQuery non è riuscito a trovare elementi nella finestra modale. Vanilla JS ha funzionato bene.
krex

75
if (!document.getElementById("given-id")) {
//It does not exist
}

L'istruzione document.getElementById("given-id")restituisce nullse un elemento con given-idnon esiste ed nullè falsa, il che significa che si traduce in falso quando viene valutata in un'istruzione if. ( altri valori falsi )


4
Ciao Esailija, credo che potresti essere la risposta migliore se aggiungessi dettagli al perché "!" funziona bene. Forse dicendo che restituisce null, che è falso. +1 da me.
Alex KeySmith

4
Le persone potrebbero cercare su Google cosa "!" significa in javascript o in molte altre lingue. Non è scienza missilistica.
CommandZ

7
@CommandZ: Perché costringere le persone a cercarlo su Google, quando una semplice spiegazione in linea sarebbe più veloce. Inoltre, credo che quello che Alex sta ottenendo è che nullvaluta false, che non è di conoscenza comune (C # è un linguaggio in cui nullnon è uguale a falso).
Doug S,

1
@DougS nullnon è uguale a falsenemmeno nel confronto coercitivo sull'uguaglianza - la chiamata ai ToBoolean(null)ritornifalse
Esailija

10

Prova a ottenere l'elemento con l'ID e controlla se il valore restituito è nullo:

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

Se stai usando jQuery, puoi fare:

$('#some_nonexistent_id').length === 0

2
C'è una ragione per cui non puoi semplicemente fare !document.getElementById('foo')?
Snuffleupagus

@ElatedOwl Può capitare di poter eseguire operazioni su molti input e di voler verificare se esistono. Sarebbe inutile document.getElementById()allora.
Danon

9

Controlla il mio codice JavaScript e JQuery:

JavaScript:

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

JQuery:

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

4

getElementByIdrestituisce nullse non esiste tale elemento.


1

Funziona 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');
 }

1

C'è una soluzione ancora migliore. Non è nemmeno necessario controllare se l'elemento ritorna null. Puoi semplicemente fare questo:

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

Quel codice accederà existsalla console solo se l'elemento esiste effettivamente nel DOM.


0

Faccio di seguito e controllo se idesiste ed eseguo la funzione se esiste.

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.