ajax返回数据后 拼接html时 如何在for循环里做if判断呢?

在做 无限滚动加载时遇到一问题?如图

图一是 直接用thinkphp 做遍历 直接做的判断 ,如果要修改为js拼接html 如何正确做if 判断呢?

图片描述

图片描述

阅读 8k
3 个回答

step1:

html += "xxx" + "yyy" + "xxx";

step2:

html += "xxx";
html += "yyy";
html += "xxx";

step3:

html += "xxx";
if(boolean){
    html += "yyy";
}
html += "xxx";

时间那一段改为三元运算!
data[i].add_time
改为
(data[i]['borrow_type'] == 6 ? data[i]['add_time] : data[i]['first_verify_time'])
至于时间格式化 要么在php中格式化好返回,要么js里面格式化一下

function date(format,timestamp){
            var a,jsdate = (timestamp) ? new Date(timestamp*1000) : new Date();
            //前导0
            var pad = function(n,c){
                if((n=n+'').length<c){
                    return new Array(++c - n.length).join('0')+n;
                }else{
                    return n;
                }
            }
            var f = {
                d: function(){ return pad(f.j(),2);},
                j: function(){ return jsdate.getDate();},
                m: function(){ return pad(f.n(),2);},
                n: function(){ return jsdate.getMonth()+1;}, 
                Y: function(){ return jsdate.getFullYear();},
                H: function(){ return pad(jsdate.getHours(),2);},
                i: function(){ return pad(jsdate.getMinutes(),2);},
                s: function(){ return pad(jsdate.getSeconds(),2);}
            };
            return format.replace(/[\\]?([a-zA-Z])/g,function(t,s){
                if(t!=s){
                    ret = s;
                }else if(f[s]){
                    ret = f[s]();
                }else{
                    ret = s;
                }
                return ret;
            });
        }

这js函数好像是在TP在线文档评论中抠出来的

个人建议,在前端还是不要拼接的好,用 jQuery 生成元素会使结构更容易理解,也更不容易出错,只是性能可能会差一点。如果使用 es6 语法可以使用模板字符串。

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