我正在尝试创建一个JavaScript变量str。 ID idofnet可能不存在,如果我不想要为str取值的话。如果确实存在,我想从ID中提取它。这是我的代码...

function ics214button() {
    if (typeof $("idofnet").html() === "undefined") {
        var str = prompt("Enter a Log number.");
    } else {
        var str = $("#idofnet").html().trim();
    }

    if (str =="") {alert("Sorry no net was selected");}
    else {alert ("It worked");}
}


当我知道没有ID = idofnet时进行测试时,会提示您输入日志号。其余代码可以正确执行。
但是,当idofnet确实存在并且包含一个值时,我仍然得到提示,要求输入日志号。该值从未在else条件测试中设置为undefined。
如果idofnet包含一个值,为什么仍要问我,好像它是未定义的? var str将始终是一个数字。

最佳答案

将if条件测试更改为此:

if ( $('#idofnet').length ) {
        var str  = $("#idofnet").html().trim();
    } else {
        var str = prompt("Enter a Log number.");
    }


解决了问题。

08-16 23:29