LuckyChend 2017-08-19 03:42 采纳率: 40%
浏览 1905
已采纳

js代码太臃肿了,求大神优化

这个是ajax给html赋值的感觉这样的代码好垃圾了,之前没做过前端,对javascript也只是稍微了解。。。js代码里面包含了很多拼接html字符串的代码,感觉重复代码很多,一个文件写了4000多行代码,但又不知道怎么优化,有大神帮忙指点下吗

 function updatemodal16(){
              $.ajax({ 
                    cache: true,
                    type: "POST",
                    dataType:'json',
                    url:'/hszx/queryConsumerByCID.do',
                    data:{C_ID:$('#currentCID').val()},
                    async: false,
                    success: function(data) {
                        loadsource(data.c_SOURCE);//客户来源
                        loadproduct(data.c_BUYPRODUCT);//购买产品
                        $('#C_ID_1').val(data.c_ID);
                        $('#C_NAME_1').val(data.c_NAME);
                        $('#C_TYPE_1').val(data.c_TYPE);
                        $('#C_NUMBER_1').val(data.c_NUMBER);//编号
                        $('#C_PHONE_1').val(data.c_PHONE);//公司电话
                        $('#C_ZIPCODE_1').val(data.c_ZIPCODE);//公司邮编
                        $('#C_PORTRAITURE_1').val(data.c_PORTRAITURE);//传真
                        $('#C_PROVINCE_1').val(data.c_PROVINCE);//省份
                        $('#C_ADDRESS_1').val(data.c_ADDRESS);//地址
                        $('#C_URL_1').val(data.c_URL);//网址
                        $('#C_USERNAME_1').val(data.oldUSERNAME);//所有者
                        $('#C_USERNAME_SHOW_1').val(data.oldUSERNAMESHOW);
                        $('#C_COMPANYTYPE_1').val(data.c_COMPANYTYPE);//公司类型
                        $('#C_NOTE_1').val(data.c_NOTE);
                    }
            });



                        function getContacts(){
            var dataObj = '';
             $.ajax({
                     type: "POST",
                     url: "/hszx/queryContactsByCID.do", 
                        data: {C_ID:$('#currentCID').val()},
                        dataType: "json", 
                        success: function(result){
                              dataObj = result;
                               var str = '<div class="contact"><a href="javascript:void(0)" data-toggle="modal" data-target="#myModal3"><img src="static/img/create_contact.png" style="width:100%;height:100%;border-radius:10px;"></a></div>'
                                 $.each(dataObj, function(index, item){
                                    str+='<a href="javascript:void(0)" onclick="openContact('+item.ct_ID+')">'
                                    +'<div class="contact"><p class="contact_p">'+item.ct_NAME+'</p>'
                                    +'      <ul class="contact_ul">';

                                    if(item.ct_POSITION.length>15){
                                        str+='          <li ><font color="#8E8080">职务:</font>'+item.ct_POSITION.substring(0,15)+'...</li>';
                                    }else{
                                        str+='          <li ><font color="#8E8080">职务:</font>'+item.ct_POSITION+'</li>';
                                    }

                                    if(item.ct_CELLPHONE.length>15){
                                        str+='          <li><font color="#8E8080">手机:</font>'+item.ct_CELLPHONE.substring(0,15)+'...</li>';
                                    }else{
                                        str+='          <li><font color="#8E8080">手机:</font>'+item.ct_CELLPHONE+'</li>';
                                    }

                                    if(item.ct_TELEPHONE.length>15){
                                        str+='          <li><font color="#8E8080">电话:</font>'+item.ct_TELEPHONE.substring(0,15)+'...</li>';
                                    }else{
                                        str+='          <li><font color="#8E8080">电话:</font>'+item.ct_TELEPHONE+'</li>';
                                    }

                                    if(item.ct_EMAIL.length>15){
                                        str+='          <li> <font color="#8E8080">邮箱:</font>'+item.ct_EMAIL.substring(0,15)+'...</li>';
                                    }else{
                                        str+='          <li> <font color="#8E8080">邮箱:</font>'+item.ct_EMAIL+'</li>';
                                    }

                                    str+='      </ul>'
                                    +'  </div>'
                                    +'</a>';
                                });
                             $('#contact_content').html(str);       
                        }    
                 })
        }
  • 写回答

3条回答 默认 最新

  • 斯洛文尼亚旅游 2017-08-19 06:34
    关注
     你的dom id起规则点,和返回的json键名称一致或者大部分一致,就可以通过each遍历赋值,如下面的,你的id第一个字母应该改小写c,和data一致,不要搞个大写,又要处理一便增加代码
    $.ajax({ 
                cache: true,
                type: "POST",
                dataType:'json',
                url:'/hszx/queryConsumerByCID.do',
                data:{C_ID:$('#currentCID').val()},
                async: false,
                success: function(data) {
                    loadsource(data.c_SOURCE);//客户来源
                    loadproduct(data.c_BUYPRODUCT);//购买产品
                    $('#C_ID_1').val(data.c_ID);
                    $('#C_NAME_1').val(data.c_NAME);
                    $('#C_TYPE_1').val(data.c_TYPE);
                    $('#C_NUMBER_1').val(data.c_NUMBER);//编号
                    $('#C_PHONE_1').val(data.c_PHONE);//公司电话
                    $('#C_ZIPCODE_1').val(data.c_ZIPCODE);//公司邮编
                    $('#C_PORTRAITURE_1').val(data.c_PORTRAITURE);//传真
                    $('#C_PROVINCE_1').val(data.c_PROVINCE);//省份
                    $('#C_ADDRESS_1').val(data.c_ADDRESS);//地址
                    $('#C_URL_1').val(data.c_URL);//网址
                    $('#C_USERNAME_1').val(data.oldUSERNAME);//所有者
                    $('#C_USERNAME_SHOW_1').val(data.oldUSERNAMESHOW);
                    $('#C_COMPANYTYPE_1').val(data.c_COMPANYTYPE);//公司类型
                    $('#C_NOTE_1').val(data.c_NOTE);
                }
            });
        ===》
                $.ajax({ 
                cache: true,
                type: "POST",
                dataType:'json',
                url:'/hszx/queryConsumerByCID.do',
                data:{C_ID:$('#currentCID').val()},
                async: false,
                success: function(data) {
                    loadsource(data.c_SOURCE);//客户来源
                    loadproduct(data.c_BUYPRODUCT);//购买产品
                                    //记得将dom对象第一个C_改为c_/////////////////////////////////////////////////////
                    for(var attr in data){$('#'+attr+'_1').val(data[attr]);
    
                }
            });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 求fpga交通信号灯设计Verilog代码
  • ¥50 adb连接不到手机是怎么回事?
  • ¥20 抓取数据时发生错误: get_mooncake_data() missing 1 required positional argument: 'driver'的问题,怎么改出正确的爬虫代码?
  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人