2016-07-21 6 views
0

Ich habe etwas Code, den ich sehe, der eine Variation von getElementByID verwendet, die ich nicht verstehe. Ich habe online gesucht, aber ich finde nichts, was das erklärt.Wenn document.getElementByID ohne ID verwendet wird, was macht es?

Ich verstehe, wie so etwas wie document.getElementById verwenden („Bob“), aber was ich so stehe auf:

if (document.getElementByID){} 

Wenn Sie getElementByID auf diese Weise, was nützt es tun?

+1

Es ist 'getElementById' nicht' getElementByID' – j08691

+0

Es ist für das Vorhandensein des Verfahrens auf dem Dokument zu überprüfen. – ray

Antwort

3

document.getElementById gibt die Funktion, die verwendet werden kann, ein Element von ID zu bekommen.

typeof document.getElementById; // 'function' 

Wenn jedoch einige Browser nicht getElementById umgesetzt haben, würden Sie undefined bekommen.

Daher ist dies nur ein Test, um sicherzustellen, dass die Methode vor dem Aufruf vorhanden ist, um einen Fehler zu vermeiden.

if(document.getElementById) { 
    // Hopefully it's safe to call it 
    document.getElementById("bob"); 
    // ... 
} else { 
    alert('What kind of stupid browser are you using? Install a proper one'); 
} 
+0

Danke, das beantwortet die Frage und macht Sinn im Zusammenhang :-) –

1

Dies wird false zurück:

if (document.getElementByID){} 

, weil es keine getElementByID auf dem document Objekt ist. Es gibt jedoch getElementById (beachten Sie den Unterschied in der d am Ende).

Daher wird diese true

if (document.getElementById){} 

Kurz zurückkehren, wenn getElementByID auf dem Dokument vorhanden ist, die aufgrund der Typisierung des Falles ist, nicht, aber wenn es dann etwas zu tun hat.

Ein vollständiges Beispiel der richtige Schreibweise verwendet:

if (document.getElementById) { 
    // it is safe to use this method because it exists on document 
    var element = document.getElementById('foo'); 
} 

document.getElementById gibt eine Funktion, die, wenn sie in einem Ausdruck zu true auswertet. Sie können dies selbst testen, aber das Code-Snippet ausführen.

console.log(document.getElementById); 
 
// The !! forces a boolean 
 
console.log(!!document.getElementById);

Verwandte Themen