jq动态拼接html页面及数据,腾讯字节阿里小米京东大厂Offer拿到手软

" <div class=“content_table_block”>\n" +

" <input type=“text” class=“content_table_block_text condition " + data.data[j].code + “condition" data-name=" + content.threeName + " οnkeyup=‘keyUp(" + data.data[j].code + “,” + JSON.stringify(content.suanfa) + ")’ data-code=" + data.data[j].code + " data-count=" + data.data[j].isCount + " code=" + data.data[j].code +"”+kk +” id=" + data.data[j].code +“_”+kk +“>\n” +

" <span class=“unit overflow”>" + content.tiaojian[k].conditionUnit + “\n” +

" \n" +

" \n" +

" "

}

}

} else {

list += “\n” +

" <td class=“content_table_label”>" + content.threeName + “\n” +

" <td colspan=“3”>\n" +

" <div class=“content_table_block”>\n" +

" <input type=“text” class=“content_table_block_text result” data-name=" + content.threeName + " data-count=" + data.data[j].isCount + " data-code=" + data.data[j].code + " code=" + data.data[j].code + " id=“+ data.data[j].code +”>\n" +

" <span class=“unit overflow”>" + content.threeUnit + “\n” +

" \n" +

" \n" +

" "

}

}

list += “\n” +

" "

}

})

}

$(“.templateArea”).append(list)

}

})

}

这里是我的拼装代码 我是分三种情况进行拼接的 因需求而异 这种方法笨是笨了点 不过身为后台开发的 有时候想不到思路的话这种拼接倒也不失为一种解决方案

最后给大家看下效果:

在这里插入图片描述

我这里是先加载头信息 bb 然后加载的是三种不同的框(下拉框 输入框 两条件一结果框)

二、腾讯template封装数据


这里给大家扩展一个其他的封装数据的方法 template模板引擎框架 这里是在腾讯template基础上使用 些许改变

我用的是template-native-3.0.1.js 大家有兴趣可以找下源码看下

个人认为template用于这些table之类的循环是挺爽的(大佬勿喷)

使用如下:

1.首先 js获取到后台数据列表 通过template进行封装

user.userData = function (param) {

return $.ajax({

url: systemBaseInterface + “/base/userData”,

data: param,

failed: function (code, msg) {

DiaLogBox.error(msg);

},

success: function (data) {

template.loadData(“user”, data.data, function (ele) {

$(ele).show();

user.tableInit();

});

$(“#userlist”).setPager(data.data, function () {

user.userData(param);

});

}

});

};

2.然后在页面调用方法如下:

页面调用主要分为几步:

a.设置template-name="你在js中设置的名字"

b.循环数据(我这里的list是因为我是分页 最后一层是list目录 然后你们可以看数据情况进行循环)

c.放入数据即可

在这里插入图片描述

3.效果如下:

在这里插入图片描述

最后给大家放下template-native-3.0.1.js源码 有兴趣看下:

!function () {

function a(a) {

return a.replace(t, “”).replace(u, “,”).replace(v, “”).replace(w, “”).replace(x, “”).split(/^$|,+/)

}

function b(a) {

return “'” + a.replace(/(‘|\)/g, “\$1”).replace(/\r/g, “\r”).replace(/\n/g, “\n”) + "’"

}

function c(c, d) {

function e(a) {

return m += a.split(/\n/).length - 1, k && (a = a.replace(/\s+/g, " ").replace(/ /g, “”)), a && (a = s[1] + b(a) + s[2] + “\n”), a

}

function f(b) {

var c = m;

if (j ? b = j(b, d) : g && (b = b.replace(/\n/g, function () {

return m++, “$line=” + m + “;”

})), 0 === b.indexOf(“=”)) {

var e = l && !/^=[=#]/.test(b);

if (b = b.replace(/^=[=#]?|[\s;]*$/g, “”), e) {

var f = b.replace(/\s*([^)]+)/, “”);

n[f] || /^(include|print) / . t e s t ( f ) ∣ ∣ ( b = " /.test(f) || (b = " /.test(f)∣∣(b="escape(" + b + “)”)

} else b = “$string(” + b + “)”;

b = s[1] + b + s[2]

}

return g && (b = “$line=” + c + “;” + b), r(a(b), function (a) {

if (a && !p[a]) {

var b;

b = “print” === a ? u : “include” === a ? v : n[a] ? “ u t i l s . " + a : o [ a ] ? " utils." + a : o[a] ? " utils."+a:o[a]?"helpers.” + a : “$data.” + a, w += a + “=” + b + “,”, p[a] = !0

}

}), b + “\n”

}

var g = d.debug, h = d.openTag, i = d.closeTag, j = d.parser, k = d.compress, l = d.escape, m = 1,

p = {$data: 1, $filename: 1, $utils: 1, $helpers: 1, $out: 1, $line: 1}, q = “”.trim,

s = q ? [“ o u t = ′ ′ ; " , " out='';", " out=′′;","out+=”, “;”, “ o u t " ] : [ " out"] : [" out"]:["out=[];”, “ o u t . p u s h ( " , " ) ; " , " out.push(", ");", " out.push(",");","out.join(‘’)”],

t = q ? “$out+=text;return o u t ; " : " out;" : " out;":"out.push(text);”,

u = “function(){var text=‘’.concat.apply(‘’,arguments);” + t + “}”,

v = “function(filename,data){data=data|| d a t a ; v a r t e x t = data;var text= data;vartext=utils. i n c l u d e ( f i l e n a m e , d a t a , include(filename,data, include(filename,data,filename);” + t + “}”,

w = “‘use strict’;var u t i l s = t h i s , utils=this, utils=this,helpers= u t i l s . utils. utils.helpers,” + (g ? “$line=0,” : “”), x = s[0],

y = “return new String(” + s[3] + “);”;

r(c.split(h), function (a) {

a = a.split(i);

var b = a[0], c = a[1];

1 === a.length ? x += e(b) : (x += f(b), c && (x += e©))

});

var z = w + x + y;

g && (z = “try{” + z + “}catch(e){throw {filename: f i l e n a m e , n a m e : ′ R e n d e r E r r o r ′ , m e s s a g e : e . m e s s a g e , l i n e : filename,name:'Render Error',message:e.message,line: filename,name:RenderError,message:e.message,line:line,source:” + b© + “.split(/\n/)[$line-1].replace(/^\s+/,‘’)};}”);

try {

var A = new Function(“ d a t a " , " data", " data","filename”, z);

return A.prototype = n, A

} catch (B) {

throw B.temp = “function anonymous( d a t a , data, data,filename) {” + z + “}”, B

}

}

var d = function (a, b) {

return “string” == typeof b ? q(b, {filename: a}) : g(a, b)

};

d.version = “3.0.0”, d.config = function (a, b) {

e[a] = b

};

var e = d.defaults = {openTag: “<%”, closeTag: “%>”, escape: !0, cache: !0, compress: !1, parser: null},

f = d.cache = {};

d.render = function (a, b) {

return q(a, b)

};

var g = d.renderFile = function (a, b) {

var c = d.get(a) || p({filename: a, name: “Render Error”, message: “Template not found”});

return b ? c(b) : c

};

d.get = function (a) {

var b;

if (f[a]) b = f[a]; else if (“object” == typeof document) {

var c = document.getElementById(a);

if © {

var d = (c.value || c.innerHTML).replace(/^\s*|\s*$/g, “”);

b = q(d, {filename: a})

}

}

return b

};

var h = function (a, b) {

return “string” != typeof a && (b = typeof a, “number” === b ? a += “” : a = “function” === b ? h(a.call(a)) : “”), a

}, i = {“<”: “<”, “>”: “>”, ‘"’: “”", “'”: “'”, “&”: “&”}, j = function (a) {

return i[a]

}, k = function (a) {

return h(a).replace(/&(?![\w#]+;)|[<>"']/g, j)

}, l = Array.isArray || function (a) {

return “[object Array]” === {}.toString.call(a)

}, m = function (a, b) {

var c, d;

if (l(a)) for (c = 0, d = a.length; d > c; c++) b.call(a, a[c], c, a); else for (c in a) b.call(a, a[c], c)

}, n = d.utils = {$helpers: {}, $include: g, $string: h, $escape: k, $each: m};

d.helper = function (a, b) {

o[a] = b

};

var o = d.helpers = n.$helpers;

d.onerror = function (a) {

var b = “Template Error\n\n”;

for (var c in a) b += “<” + c + “>\n” + a[c] + “\n\n”;

“object” == typeof console && console.error(b)

};

var p = function (a) {

return d.onerror(a), function () {

return “{Template Error}”

}

}, q = d.compile = function (a, b) {

function d© {

try {

return new i(c, h) + “”

} catch (d) {

return b.debug ? p(d)() : (b.debug = !0, q(a, b)©)

}

}

b = b || {};

for (var g in e) void 0 === b[g] && (b[g] = e[g]);

var h = b.filename;

try {

var i = c(a, b)

} catch (j) {

return j.filename = h || “anonymous”, j.name = “Syntax Error”, p(j)

}

return d.prototype = i.prototype, d.toString = function () {

return i.toString()

}, h && b.cache && (f[h] = d), d

}, r = n.$each,

s = “break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined”,

t = //*[\w\W]?*/|//[\n]*\n|//[\n]KaTeX parse error: Invalid size: '\w\W' at position 15: |"(?:[^"\\]|\\[̲\̲w̲\̲W̲]̲)*"|'(?:[^'\\]|…\w.]+/g,

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后前端到底应该怎么学才好?

如果你打算靠自己摸索自学,那么你首先要了解学习前端的基本大纲,这是你将要学习的主要内容,理解以及掌握好这些内容,便可以找到一份初级的前端开发工作。你还需要有一套完整的前端学习教程,作为初学者最好的方式就是看视频教程学习,初学者容易理解接受。

不要选择买书学习,这样的方式没有几个人能学会,基本都是看不下去书,也看不懂书。如果喜欢看书的学弟,可以买一些经典的书籍作为辅助即可,主要还是以看教程为主。每天抽出固定几个小时学习,做好长期学习的准备。学习编程并不是每天光看视频,你学习编程最重要的目的是为了编写软件产品,提供给大众使用,所以用手写出代码实现功能才是我们要做的事情。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

cess=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h6aXQ0OTQ4MDE4MzE=,size_16,color_FFFFFF,t_70#pic_center)

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值