Maison >interface Web >js tutoriel >Introduction à la méthode de génération de tableaux html basés sur json en js (code)
Ce que cet article vous apporte est une introduction à la méthode (code) de génération de tableaux html basés sur json en js. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. .
Auparavant, l'entreprise avait une exigence : générer du HTML via js. Et la plupart d'entre eux génèrent des tables Si vous collez directement des chaînes, la réutilisabilité du code est trop faible, j'ai donc écrit un outil général de table json en html.
Code
htmlKit = { _tags: [], html: [], _createAttrs: function (attrs) { var attrStr = []; for (var key in attrs) { if (!attrs.hasOwnProperty(key)) continue; attrStr.push(key + "=" + attrs[key] + "") } return attrStr.join(" ") }, _createTag: function (tag, attrs, isStart) { if (isStart) { return "<" + tag + " " + this._createAttrs(attrs) + ">" } else { return "</" + tag + ">" } }, start: function (tag, attrs) { this._tags.push(tag); this.html.push(this._createTag(tag, attrs, true)) }, end: function () { this.html.push(this._createTag(this._tags.pop(), null, false)) }, tag: function (tag, attr, text) { this.html.push(this._createTag(tag, attr, true) + text + this._createTag(tag, null, false)) }, create: function () { return this.html.join("") } }; function json2Html(data) { var hk = htmlKit; hk.start("table", {"cellpadding": "10", "border": "1"}); hk.start("thead"); hk.start("tr"); data["heads"].forEach(function (head) { hk.tag("th", {"bgcolor": "AntiqueWhite"}, head) }); hk.end(); hk.end(); hk.start("tbody"); data["data"].forEach(function (dataList, i) { dataList.forEach(function (_data) { hk.start("tr"); data["dataKeys"][i].forEach(function (key) { var rowsAndCol = key.split(":"); if (rowsAndCol.length === 1) { hk.tag("td", null, _data[rowsAndCol[0]]) } else if (rowsAndCol.length === 3) { hk.tag("td", {"rowspan": rowsAndCol[0], "colspan": rowsAndCol[1]}, _data[rowsAndCol[2]]) } }); hk.end() }) }); hk.end(); hk.end(); return hk.create() }
Instructions
HtmlKit
htmlKit est un outil de création de balises html
函数名 | 作用 | 例子 |
---|---|---|
start (tag, attrs) | 创建未封闭标签头 |
start("table", {"cellpadding": "10", "border": "1"}) ,输出<table cellpadding="10" border="1">
|
end () | 创建上一个start函数的标签尾 | 上面执行了start("table"),再执行end(),输出</table>
|
tag (tag, attr, text) | 创建封闭标签 |
tag("th", {"bgcolor": "AntiqueWhite"}, "hello") ,输出<th bgcolor="AntiqueWhite">hello</th>
|
语文 | 数学 | 英语 |
---|---|---|
80 | 89 | 90 |
合计 | 259 |