前言
最近維護一個老系統,里面有大量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的拼接現在一般用模板,這里記錄以下