/ / Gdy dokument document.getElementByID jest używany bez identyfikatora, co robi? - javascript, dom, getelementbyid

Kiedy document.getElementByID jest używany bez identyfikatora, co on robi? - javascript, dom, getelementbyid

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

document.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);