ajax请求?返回数据处理?空数据?

$.ajax({
    type:'POST',
     dataType: "json",
     url:"url",
     data:adata,
    success:function(data){
        console.log(data);
        var arr=[];
        for(var i in data){
            arr.push(data[i])
        }

        var str='';
        for(j=0;j<arr[2].length;j++){
              str+='<div class="question1">';
              str+='<p>'+arr[2][j].question+'</p>';
               str+='<ul>';
               str+='<li class="jjjj" value="A">'+arr[2][j].answera+'</li>';  
               str+='<li class="jjjj" value="B">'+arr[2][j].answerb+'</li>';
               str+='<li class="jjjj" value="C">'+arr[2][j].answerc+'</li>';
               str+='<li class="jjjj" value="D">'+arr[2][j].answerd+'</li>';  
               str+='</ul>';
               str+='</div>';   

        }
        $("#container").html(str);

这是我请求到的数据 和前端渲染,但是后台返回我的数据有时候是三个选项,有时是四个选项,我现在的处理方法就会还是四个选项,但是有一个undefind,怎么处理,求大神帮忙

clipboard.png

阅读 2k
3 个回答

判断下 d 是否存在

for(j=0;j<arr[2].length;j++){
              str+='<div class="question1">';
              str+='<p>'+arr[2][j].question+'</p>';
               str+='<ul>';
               str+='<li class="jjjj" value="A">'+arr[2][j].answera+'</li>';  
               str+='<li class="jjjj" value="B">'+arr[2][j].answerb+'</li>';
               str+='<li class="jjjj" value="C">'+arr[2][j].answerc+'</li>';
               if(arr[2][j].answerd){
                   str+='<li class="jjjj" value="D">'+arr[2][j].answerd+'</li>'; 
               } 
               str+='</ul>';
               str+='</div>';   

        }
if(arr[2][j].answerd != undefined)
str+='<li class="jjjj" value="D">'+arr[2][j].answerd+'</li>';

我觉得这个就是接口没处理好, 选项就该用数组返回!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题