/ / Keď sa document.getElementByID použije bez ID, čo to robí? - javascript, dom, getelementbyid

Keď sa document.getElementByID používa bez ID, čo to robí? - javascript, dom, getelementbyid

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ď č. 1

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