我正在努力弄清楚为什么我的else阻止不执行虽然如果条件满足就会执行if块我对java脚本比较新,但我有编程经验和我有点不知道为什么它不会。
这是在$(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并不是太好了,我评论了两行也只是看看是否有任何事情发生在他们的行中导致它不执行添加alert()以查看函数能够到达的位置。
提前感谢您提供任何帮助。
答案 0 :(得分: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");
};
答案 1 :(得分: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");
};

答案 2 :(得分:1)
NULL != null
所以请将NULL
替换为null
。最好不使用运算符,即!
。它检查字符串是否为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");
})()