/ / Когато document.getElementByID се използва без идентификатор какво прави? - javascript, dom, getelementbyid

Когато document.getElementByID се използва без идентификатор, какво прави това? - javascript, dom, getelementbyid

Имам някакъв код, който гледам, че използва вариант на getElementByID, който не разбирам. Потърсих онлайн, но не намирам нищо, което да обяснява това.

Разбирам как да използвам нещо като document.getElementByID ("bob"), но това, което гледам, казва:

if (document.getElementByID){}

Когато използвате getElementByID по този начин какво прави?

Отговори:

3 за отговор № 1

document.getElementById връща функцията, която може да се използва за получаване на някакъв елемент по ID.

typeof document.getElementById; // "function"

Ако обаче някой браузър не го приложи getElementById, ще получите undefined.

Следователно, това е просто тест, за да се гарантира, че методът съществува, преди да го извикате, като избягвате грешка.

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 за отговор № 2

Това ще се върне false:

if (document.getElementByID){}

защото няма getElementByID на document обект. Има обаче, getElementById (забележете разликата в d накрая).

Следователно това ще се върне true

if (document.getElementById){}

Накратко, ако getElementByID съществува на документ, който поради въвеждането не го прави, но ако го направи, тогава направи нещо.

По-пълен пример, използващ правилния правопис:

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

document.getElementById връща функция, която се оценява true когато в израз. Можете сами да тествате това, но работете с фрагмента на кода.

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