3

我正在努力弄清楚为什么我的 else 块没有执行,尽管 if 块将在满足条件时执行.

这是在 $(document).ready 上调用的函数:

function selectSchool()
    {
        alert("Selecting a School!" + sessionStorage.sCData);
        if (!sessionStorage.sCData || sessionStorage === NULL)
        {
            alert("Its Empty!");
        } else {
            alert("Its Not Empty!");
            //$('#schoolDropdown').val(sessionStorage.sCData);
            //sessionStorage = NULL;
            alert('Session Storage: ' + sessionStorage.sCData);
        }
        alert("Function finished");

    };

我很难看到任何不好的语法,但我对 javascript 的经验并不太好,我也注释掉了这两行,看看是否是它们行中发生的任何事情导致它无法执行添加 alerts() 以查看函数能够到达的位置。

提前感谢您提供的任何帮助。

4

3 回答 3

3

我会切换条件并检查真实性sessionStorage以及是否sCData真实性。

function selectSchool() {
    alert("Selecting a School!" + sessionStorage.sCData);
    if (sessionStorage && sessionStorage.sCData) {
        alert("Its Not Empty!");
        alert('Session Storage: ' + sessionStorage.sCData);
    } else {
        alert("Its Empty!");
    }
    alert("Function finished");
};
于 2016-11-17T09:36:32.490 回答
2

首先,在 JavaScript 中没有像 NULL 这样的东西。JavaScript 区分大小写。

其次,会话存储永远不会是null,因此sessionStorage == null条件将始终返回 false。

最后,工作片段:

function selectSchool() {
  
  alert("Selecting a School!" + sessionStorage.sCData);
  if (!sessionStorage.sCData) {
    alert("Its Empty!");
  } else {
    alert("Its Not Empty!");
    //$('#schoolDropdown').val(sessionStorage.sCData);
    //sessionStorage = NULL;
    alert('Session Storage: ' + sessionStorage.sCData);
  }
  alert("Function finished");
  
};

于 2016-11-17T09:36:51.617 回答
1

NULL != null所以替换NULLnull. 最好使用 not 运算符 ie !。它检查字符串是否为empty, null or undefined. 也可以使用

if (!sessionStorage.sCData || sessionStorage === null)

或者

if (!sessionStorage.sCData || !sessionStorage)

例子:

(function selectSchool()
    {
      var some="";
        if (!some)
        {
            alert("Its Empty!");
        } else {
            alert("Its Not Empty!");
           

        }
        alert("Function finished");

    })()

于 2016-11-17T09:39:38.207 回答