Имам някакъв код, който гледам, че използва вариант на getElementByID, който не разбирам. Потърсих онлайн, но не намирам нищо, което да обяснява това.
Разбирам как да използвам нещо като document.getElementByID ("bob"), но това, което гледам, казва:
if (document.getElementByID){}
Когато използвате getElementByID по този начин какво прави?
Отговори:
3 за отговор № 1document.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);