2012-06-04 11 views

Odpowiedz

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

Use (myElem === null) dla punktów bonusowych. – Frug

+0

Wielkie dzięki. Używam modalnych okien AngularJS i Bootstrap, z jakiegoś powodu JQuery nie mógł znaleźć elementów w oknie modalnym. Vanilla JS działała dobrze. – JohnDoe

+0

Wydaje się pracować ... dzięki! –

3

getElementById zwraca null jeśli nie ma takiego elementu.

10

Spróbuj znaleźć element z ID i sprawdzić, czy wartość zwracana jest wartość null:

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

Jeśli używasz jQuery, można zrobić:

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

Czy istnieje powód, dla którego nie można po prostu wykonać '! Document.getElementById ('foo')'? – Snuffleupagus

+2

Możesz ... Jestem po prostu jawny dla dobra czytelności – Hristo

+0

@ElatedOwl Może się zdarzyć, że możesz wykonać operację na wielu wejściach i chcesz sprawdzić, czy one istnieją. Byłoby bezcelowe wobec 'document.getElementById()'. – Danon

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

rachunku document.getElementById("given-id") zwraca null jeśli element z given-id nie istnieje, a null jest falsy, co oznacza, że ​​tłumaczy na false, gdy jest oceniany w -komunikat. (other falsy values)

+4

Cześć Esailija, myślę, że mogłabyś być najlepszą odpowiedzią, gdybyś dodał szczegóły, dlaczego "!" działa dobrze. Być może mówiąc, że zwraca wartość null, która jest falsy. +1 ode mnie. –

+4

Ludzie mogą znaleźć w Google co "!" oznacza w javascript lub w wielu innych językach. To nie jest rakieta. – CommandZ

+7

@CommandZ: Po co zmuszać ludzi do Google go, gdy proste wyjaśnienie liniowe byłoby szybsze. Poza tym wierzę w to, co Alex robi, to że 'null' ma wartość" false ", co nie jest powszechną wiedzą (C# to język, w którym' null' nie jest równy false). –

1

który współpracuje z:

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

Sprawdź mój zarówno JavaScript i jQuery kod:

JavaScript:

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

JQuery:

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

Istnieje jeszcze lepsze rozwiązanie. Nie musisz nawet sprawdzać, czy element zwraca null. można po prostu to zrobić:

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

Ten kod będzie tylko zalogować exists pocieszyć jeśli element rzeczywiście istnieje w DOM.

0

Wykonuję poniżej i sprawdzam, czy istnieje id i czy istnieje funkcja wykonania.

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