我有一个javascript ajax请求,如果找不到任何内容则返回null,然后显示没有找到用户的结果。这之前工作正常但由于某种原因已停止。 IF语句似乎不再捕获空值。
//on success
success: function(data) {
if(data == 'null') {
buildaccordion("<h3>No Results Found</h3><div>No Data to Show.</div>");
return;
}
当我看到php方面的反应时,我确实正在从服务器发送文本'null'。我还检查了firefox中内置的调试器,数据的值是“null”。但if语句没有抓住它!?
以前工作正常,我看不出会造成什么。
我也试过
== null
=== null
==='null'
答案 0 :(得分:4)
由于您提到其类型已显示为字符串,您可以执行以下操作:
if(data.trim()=='null')
上一个答案:
当您说if data=='null'
时,您确实在检查数据是否为字符串null
if(data == 'null')
应该是
if(!data)
或者
if(typeof data === 'undefined')
答案 1 :(得分:1)
您可以尝试if( !data )
null和0都是一样的。
答案 2 :(得分:1)
为了确定(因为你不确切知道返回值的类型是什么),更好地实现一个包罗万象的解决方案:
if((!data) || (data == 'null') || (typeof data === 'undefined') || (!data.length)) {
// No results
}
答案 3 :(得分:0)
某处有空间吗?也许if( data.replace(/^\s+/,"").replace(/\s+$/,"")=="null" ) ...
可行吗?