Überprüfen Sie, ob ein Div mit Javascript NICHT vorhanden ist

92

Es ist ziemlich einfach zu überprüfen, ob ein Div existiert

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

}

Aber wie kann ich überprüfen, ob ein Div mit der angegebenen ID nicht existiert?

Wilson
quelle

Antworten:

151
var myElem = document.getElementById('myElementId');
if (myElem === null) alert('does not exist!');
Jimbo Jonny
quelle
1
Danke vielmals. Ich verwende modale AngularJS- und Bootstrap-Fenster. Aus irgendeinem Grund konnte JQuery keine Elemente im modalen Fenster finden. Vanilla JS hat gut funktioniert.
Krex
75
if (!document.getElementById("given-id")) {
//It does not exist
}

Die Anweisung wird document.getElementById("given-id")zurückgegeben, nullwenn ein Element mit given-idnicht vorhanden ist, und nullist falsch, was bedeutet, dass sie bei der Auswertung in einer if-Anweisung in false übersetzt wird. ( andere falsche Werte )

Esailija
quelle
4
Hallo Esailija, ich denke, Sie könnten die beste Antwort sein, wenn Sie dem Warum "!" funktioniert gut. Vielleicht sagen, dass es null zurückgibt, was falsch ist. +1 von mir.
Alex KeySmith
4
Leute könnten googeln was "!" bedeutet in Javascript oder in vielen anderen Sprachen. Es ist keine Raketenwissenschaft.
CommandZ
7
@CommandZ: Warum Leute zu Google zwingen, wenn eine einfache Inline-Erklärung schneller wäre. Außerdem glaube ich, dass Alex das nullbewertet false, was nicht allgemein bekannt ist (C # ist eine Sprache, in nullder nicht gleich falsch ist).
Doug S
1
@DougS nullentspricht nicht falseeinmal im Vergleich der ToBoolean(null)false
Zwangsgleichheit
10

Versuchen Sie, das Element mit der ID abzurufen, und überprüfen Sie, ob der Rückgabewert null ist:

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

Wenn Sie jQuery verwenden, können Sie Folgendes tun:

$('#some_nonexistent_id').length === 0
Hristo
quelle
2
Gibt es einen Grund, den Sie nicht einfach tun könnten !document.getElementById('foo')?
Snuffleupagus
@ElatedOwl Es kann vorkommen, dass Sie viele Eingänge bearbeiten können und prüfen möchten, ob sie vorhanden sind. Bis dahin wäre es sinnlos document.getElementById().
Danon
9

Überprüfen Sie sowohl meinen JavaScript- als auch meinen JQuery-Code:

JavaScript:

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

JQuery:

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

getElementByIdGibt zurück, nullwenn es kein solches Element gibt.

SLaks
quelle
1

Das funktioniert mit:

 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
quelle
1

Es gibt eine noch bessere Lösung. Sie müssen nicht einmal überprüfen, ob das Element zurückgegeben wird null. Sie können dies einfach tun:

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

Dieser Code wird nur dann existsin der Konsole protokolliert , wenn das Element tatsächlich im DOM vorhanden ist.


quelle
0

Ich mache unten und überprüfe, ob idvorhanden und führe die Funktion aus, falls vorhanden.

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