检查AJAX响应数据是否为空/空/空/未定义/ 0

Cla*_*nus 51 javascript ajax null jquery

是)我有的:

我有jQuery AJAX函数,它在查询数据库后返回HTML.根据查询结果,函数将根据需要返回HTML代码或不返回任何内容(即空白).

我需要的:

我需要有条件地检查数据何时为空.

我的代码:

$.ajax({
    type:"POST",
    url: "<?php echo admin_url('admin-ajax.php'); ?>",
    data: associated_buildsorprojects_form,
    success:function(data){
        if(!data){  
        //if(data="undefined"){
        //if(data==="undefined"){
        //if(data==null){
        //if(data.length == 0){
        //if ( data.length != 0 ){
        //if(data===0){
        //if(data==="0"){   
            alert("Data: " + data);
        }
    },
    error: function(errorThrown){
        alert(errorThrown);
        alert("There is an error with AJAX!");
    }               
});
Run Code Online (Sandbox Code Playgroud)

我的问题:

我尝试了各种条件但没有正确检查数据.根据我的发现,空白警报消息并不意味着数据

  1. 不存在的
  2. 等于零
  3. 长度为零
  4. 空值
  5. 未定义

如果不是这些东西,我怎么能有条件地检查产生空白警报消息的数据?

Cla*_*nus 82

Felix Kling在问题的评论部分提供了以下正确答案:

if (!$.trim(data)){   
    alert("What follows is blank: " + data);
}
else{   
    alert("What follows is not blank: " + data);
}
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用 `console.log();` 而不是 `alert();`。这是更好的做法。如果您养成了提醒错误消息的习惯,那么有一天您可能会发现自己处于无限循环的警报框中,并且无法关闭浏览器/程序。话虽这么说,很好的答案。 (2认同)

Ste*_*her 26

//if(data="undefined"){
Run Code Online (Sandbox Code Playgroud)

这是一个赋值语句,而不是比较.此外,"undefined"是一个字符串,它是一个属性.检查它是这样的:( if (data === undefined)没有引号,否则它是一个字符串值)

如果未定义,则可能返回空字符串.你可以尝试检查一个falsy值一样if (!data),以及


小智 12

if(data.trim()==''){alert("Nothing Found");}
Run Code Online (Sandbox Code Playgroud)