簡體   English   中英

否則,如果元素ID不存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM