[英]Else-if element ID doesn't exist
我有一些可點擊的項目。 每個頁面都會根據用戶的選擇生成新項目。 我希望能夠基於是否存在特定ID以及是否不存在特定ID來運行一些代碼,因此我不希望它運行。 到目前為止,這是我嘗試過的:
function pageLoad() {
var ums = document.getElementById('DIVID').innerHTML;
if(ums == "IN (INCHES)") {
allFunctionsInvoked();
}
}
當元素不存在時,我收到此錯誤消息:
Uncaught TypeError: Cannot read property 'innerHTML' of null
導致我的程序凍結。 我嘗試添加else if語句來檢查ID是否為null,但仍然無法解決該問題。
如果具有指定ID的元素不在文檔中,則.getElementById()
方法將返回null
。
因此,您可以在檢索innerHTML
屬性之前檢查元素是否為null
:
function pageLoad() {
var element = document.getElementById('DIVID');
if (element !== null && element.innerHTML == "IN (INCHES)") {
allFunctionsInvoked();
}
}
附帶說明一下,如果僅檢查文本字符串,則可以訪問textContent
屬性而不是innerHTML
屬性:
function pageLoad() {
var element = document.getElementById('DIVID');
if (element !== null && element.textContent === "IN (INCHES)") {
allFunctionsInvoked();
}
}
您可以檢查此值為null
:
function pageLoad() {
var elem = document.getElementById('DIVID');
if (elem === null) {
console.log("No DIVID element.");
return;
}
if (elem.innerHTML == "IN (INCHES)") {
allFunctionsInvoked();
}
}
因為null
是偽造的 ,所以也可以簡單地使用!elem
:
function pageLoad() {
var elem = document.getElementById('DIVID');
if (!elem) {
console.log("No DIVID element.");
return;
}
if (elem.innerHTML == "IN (INCHES)") {
allFunctionsInvoked();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.