Mám nejaký kód, na ktorý sa pozerám a ktorý používa variáciu na getElementByID, ktorej nerozumiem. Pozeral som sa online, ale nenašiel som nič, čo by to vysvetľovalo.
Rozumiem, ako používať niečo ako document.getElementByID ("bob"), ale to, na čo sa pozerám, hovorí:
if (document.getElementByID){}
Keď používate getElementByID týmto spôsobom, čo to robí?
odpovede:
3 pre odpoveď č. 1document.getElementById
vráti funkciu, ktorá sa dá použiť na získanie nejakého prvku podľa ID.
typeof document.getElementById; // "function"
Ak však niektorý prehliadač nebol implementovaný getElementById
, dostanete undefined
.
Preto je to iba test na zabezpečenie existencie metódy pred jej volaním, aby sa zabránilo chybe.
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 pre odpoveď č. 2
To sa vráti false
:
if (document.getElementByID){}
pretože neexistuje getElementByID
na document
objekt. Existuje však getElementById
(všimnite si rozdiel v d
nakoniec).
Preto sa to vráti true
if (document.getElementById){}
Skrátka, ak getElementByID
existuje v dokumente, ktorý kvôli písaniu nie, ale ak sa tak stalo, urobte niečo.
Úplnejší príklad použitia správneho pravopisu:
if (document.getElementById) {
// it is safe to use this method because it exists on document
var element = document.getElementById("foo");
}
document.getElementById
vráti funkciu, ktorá sa vyhodnotí true
keď vo výraze. Môžete to vyskúšať sami, ale spustíte útržok kódu.
console.log(document.getElementById);
// The !! forces a boolean
console.log(!!document.getElementById);