Periksa apakah div TIDAK ada dengan javascript

92

Memeriksa apakah div ada cukup sederhana

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

}

Tetapi bagaimana saya bisa memeriksa apakah div dengan id yang diberikan tidak ada?

Wilson
sumber

Jawaban:

152
var myElem = document.getElementById('myElementId');
if (myElem === null) alert('does not exist!');
Jimbo Jonny
sumber
1
Terimakasih banyak. Saya menggunakan jendela modal AngularJS dan Bootstrap, untuk beberapa alasan JQuery tidak dapat menemukan elemen di jendela modal. Vanilla JS bekerja dengan baik.
krex
75
if (!document.getElementById("given-id")) {
//It does not exist
}

Pernyataan document.getElementById("given-id")kembali nulljika sebuah elemen dengan given-idtidak ada, dan nullsalah artinya diterjemahkan menjadi salah ketika dievaluasi dalam pernyataan-if. ( nilai palsu lainnya )

Esailija
sumber
4
Hai Esailija, saya rasa Anda bisa menjadi jawaban terbaik jika Anda menambahkan detail mengapa "!" bekerja dengan baik. Mungkin mengatakan bahwa itu mengembalikan nol, yang salah. +1 dari saya.
Alex KeySmith
4
Orang bisa google apa "!" artinya dalam javascript atau dalam banyak bahasa lainnya. Ini bukan ilmu roket.
CommandZ
7
@CommandZ: Mengapa memaksa orang untuk menggunakan Google, padahal penjelasan sebaris sederhana akan lebih cepat. Selain itu, saya percaya apa yang Alex maksudkan adalah yang nullmengevaluasi false, yang bukan pengetahuan umum (C # adalah bahasa di mana nulltidak sama dengan salah).
Doug S
1
@DougS nulltidak sama dengan falsebahkan dalam perbandingan kesetaraan koersif - panggilan untuk ToBoolean(null)kembalifalse
Esailija
10

Coba dapatkan elemen dengan ID dan periksa apakah nilai yang dikembalikan adalah null:

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

Jika Anda menggunakan jQuery, Anda dapat melakukan:

$('#some_nonexistent_id').length === 0
Hristo
sumber
2
Apakah ada alasan mengapa Anda tidak bisa melakukannya !document.getElementById('foo')?
Snuffleupagus
@ElatedOwl Bisa saja Anda melakukan operasi pada banyak input, dan Anda ingin memeriksa apakah ada. Tidak ada gunanya untuk document.getElementById()itu.
Danon
10

Periksa kode JavaScript dan JQuery saya:

JavaScript:

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

JQuery:

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

getElementByIdkembali nulljika tidak ada elemen seperti itu.

SLaks
sumber
1

Itu bekerja dengan:

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

Ada solusi yang lebih baik. Anda bahkan tidak perlu memeriksa apakah elemen tersebut kembali null. Anda cukup melakukan ini:

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

Kode itu hanya akan masuk existske konsol jika elemen tersebut benar-benar ada di DOM.


sumber
0

Saya lakukan di bawah ini dan periksa apakah idada dan jalankan fungsi jika ada.

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