繁体   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