Mam trochę kodu, na który patrzę, który używa wariantu getElementByID, którego nie rozumiem. Szukałem w Internecie, ale nie znajduję niczego, co by to wyjaśniało.
Rozumiem, jak używać czegoś takiego jak document.getElementByID („bob”), jednak to, na co patrzę, mówi:
if (document.getElementByID){}
Kiedy używasz getElementByID w ten sposób, co on robi?
Odpowiedzi:
3 dla odpowiedzi № 1document.getElementById
zwraca funkcję, której można użyć do uzyskania elementu według ID.
typeof document.getElementById; // "function"
Jeśli jednak niektóre przeglądarki nie zostały wdrożone getElementById
, dostaniesz undefined
.
Dlatego jest to tylko test, aby upewnić się, że metoda istnieje przed jej wywołaniem, unikając błędu.
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");
}
1 dla odpowiedzi nr 2
To powróci false
:
if (document.getElementByID){}
ponieważ nie ma getElementByID
na document
obiekt. Jest jednak getElementById
(zauważ różnicę w d
na końcu).
Dlatego to wróci true
if (document.getElementById){}
W skrócie, jeśli getElementByID
istnieje na dokumencie, który z powodu pisania nie istnieje, ale jeśli to zrobił, to zrób coś.
Bardziej pełny przykład z poprawną pisownią:
if (document.getElementById) {
// it is safe to use this method because it exists on document
var element = document.getElementById("foo");
}
document.getElementById
zwraca funkcję, która ocenia true
gdy w wyrażeniu. Możesz to przetestować samodzielnie, ale uruchamiając fragment kodu.
console.log(document.getElementById);
// The !! forces a boolean
console.log(!!document.getElementById);