julyluo

前言

最近维护一个老系统,里面有大量js拼接字符串的代码,这里总计一下js拼接字符串

JS 原生字符串拼接

JavaScript里面的字符串可以直接用 + 来拼接

return "<a style=\'text-decoration:underline\' onClick=\'" + valsAr[1] + " return false;" + "\' data-rowId=\'" + row_id + "\' href=\'javascript:;\' title=\'" + valsAr[0] + "\'>" + valsAr[0] + "</a> ";

 以上就是拼接一个带js事件的a标签,可以看出来里面混合了单引号和双引号,用起来相对的费劲。

因为单引号和双引号结合在一起,所以可以用js的array进行分开操作,最后在join起来:

data.push("<a style=\'text-decoration:underline\' onClick=\'");
data.push(valsAr[1]);
data.push(\' return false;\');
data.push("\' data-rowId=\'");
data.push(row_id);
data.push("\' href=\'javascript:;\' title=\'");
data.push(valsAr[0]);
data.push("\'>");
data.push(valsAr[0]);
data.push( "</a> ");

 这其实和上面的方法差不都,只是用数组将要用+的隔开而已

JS模板

以上都是比较老的解决方案了,用起来也费劲,现在都是用js template进行组装:

 var strTem = "<a style=\'text-decoration:underline;color:#color#\' onClick=\'#click# return false;\' data-rowId=\'#rowId#\' href=\'javascript:;\' title=\'#title#\' >#title#</a> ";
var values = {};
values["color"] = color;
values["click"] = valsAr[1];
values["title"] = valsAr[0];
values["rowId"] = row_id;
template(strTem, values)

 总结

js的拼接现在一般用模板,这里记录以下

分类:

技术点:

相关文章: