javascript - ajax调用在回调函数里for循环加if判断出现问题

查看:96
本文介绍了javascript - ajax调用在回调函数里for循环加if判断出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

代码如下
success:function(data){

            var str = "";
            for(i in data.data){
                str += '<div class="row'+i+' clearall row"><div class="data_name">'+data.data[i].name+'</div><div class="data_bar clearall"><div class="bar_r" title="'+data.data[i].oValue+'"><div class="remove_bar" title="'+data.data[i].oValue+'"></div></div><div class="add_bar" title="'+data.data[i].tValue+'"></div></div><div class="bar_num">'+data.data[i].tValue+'</div></div>';

                $(".barData").html(str);
                 tv = data.data[i].tValue * 0.23;
                 ov = data.data[i].oValue * 0.23;
                 dv = data.data[i].dValue*0.23;
                 rv = data.data[i].rValue*0.23;
                $(".row"+i).find(".data_bar").width(tv);
                if(data.data[i].dValue>0){
                    console.log(i);
                    $(".row"+i).children(".data_bar").children(".bar_r").children(".remove_bar").width(0);
                    $(".row"+i).children(".data_bar").children(".bar_r").width(ov);
                    $(".row"+i).children(".data_bar").children(".add_bar").width(dv);
                    
                }else{

                    console.log(i);
                    $(".row"+i).children(".data_bar").children(".add_bar").width(0);
                    $(".row"+i).children(".data_bar").children(".bar_r").children(".remove_bar").width(rv);
                    $(".row"+i).children(".data_bar").children(".bar_r").width(ov);
                    
                };
            }
        }

结果第一条没出现 if大于0的判断走了 但宽度没加上 如图

一直卡在这 请大手帮忙看一下

解决方案

应该是这样写。。。。。我太菜鸟了 这个问题有点白痴。。。。。

wbar:function(){
        $.ajax({
            type:"get",
            url:bar_url,
            dataType:"json",
            success:function(data){
//                
                var str = "";
                for(i in data.data){
                    str += '<div class="row'+i+' clearall row"><div class="data_name">'+data.data[i].name+'</div><div class="data_bar clearall"><div class="bar_r" title="'+data.data[i].oValue+'"><div class="remove_bar" title="'+data.data[i].oValue+'"></div></div><div class="add_bar" title="'+data.data[i].tValue+'"></div></div><div class="bar_num">'+data.data[i].tValue+'</div></div>';
//                    
                };
                $(".barData").html(str);
                for(i in data.data){
                    tv = data.data[i].tValue * 0.23;
                    ov = data.data[i].oValue * 0.23;
                    dv = data.data[i].dValue*0.23;
                    rv = data.data[i].rValue*0.23;
                    console.log(tv);
                    $(".row"+i).find(".data_bar").width(tv);
                    ifbar(data.data[i].dValue,i);
                };
            }
        })
    }
};
page.init();
function ifbar(d,i){
    if(d>0){
        console.log("nima");
        $(".row"+i).children(".data_bar").children(".bar_r").children(".remove_bar").width(0);
        $(".row"+i).children(".data_bar").children(".bar_r").width(ov);
        $(".row"+i).children(".data_bar").children(".add_bar").width(dv);
        
    }else{
//                        console.log(data.data[i].dValue);
        console.log(i);
        $(".row"+i).children(".data_bar").children(".add_bar").width(0);
        $(".row"+i).children(".data_bar").children(".bar_r").children(".remove_bar").width(rv);
        $(".row"+i).children(".data_bar").children(".bar_r").width(ov);
        
    };
}

这篇关于javascript - ajax调用在回调函数里for循环加if判断出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆