Перевірте, чи не існує div за допомогою JavaScript


92

Перевірити, чи існує div, досить просто

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

}

Але як я можу перевірити, чи не існує div з вказаним ідентифікатором?

Відповіді:


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

1
Велике дякую. Я використовую модальні вікна AngularJS та Bootstrap, чомусь JQuery не зміг знайти елементи у модальному вікні. Vanilla JS працював нормально.
krex

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

Оператор document.getElementById("given-id")повертається, nullякщо елемент з given-idне існує, і nullє хибним, що означає, що він перетворюється на false, коли обчислюється в інструкції if. ( інші помилкові значення )


4
Привіт, Esailija, я гадаю, ти міг би бути найкращою відповіддю, якби додав детальну інформацію про те, чому "!" працює добре. Можливо, кажучи, що це повертає null, що є хибністю. +1 від мене.
Алекс Кейсміт

4
Люди могли погуглити, що "!" означає у javascript чи багатьох інших мовах. Це не ракетна наука.
CommandZ

7
@CommandZ: Навіщо змушувати людей гуглити це, коли просте вбудоване пояснення було б швидшим. Крім того, я вважаю, що Алекс досягає того, що nullоцінює false, що не є загальновідомим (C # - це мова, nullяка не дорівнює false).
Даг С.

1
@DougS nullне дорівнює falseнавіть при примусовому порівнянні рівності - заклику до ToBoolean(null)поверненняfalse
Esailija

10

Спробуйте отримати елемент з ідентифікатором і перевірте, чи повертається значення нульовим:

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

Якщо ви використовуєте jQuery, ви можете зробити:

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

2
Чи є причина, яку ви не могли просто зробити !document.getElementById('foo')?
Snuffleupagus

@ElatedOwl Може статися, що ви можете виконувати операції на багатьох входах, і ви хочете перевірити, чи вони існують. Тоді було б безглуздо document.getElementById().
Данон

9

Перевірте мій код JavaScript і JQuery:

JavaScript:

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

JQuery:

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


1

Це працює з:

 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

Є ще краще рішення. Вам навіть не потрібно перевіряти, чи повертається елемент null. Ви можете просто зробити це:

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

Цей код буде реєструватися existsв консолі, лише якщо елемент насправді існує в DOM.


0

Я роблю нижче і перевіряю, чи idіснує, і виконую функцію, якщо вона існує.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.