不完全回答您的问题,而是建议您使用纯 JavaScript 模板引擎(jQuery 插件),而不是自己构建 HTML。
该引擎(一个 jQuery 插件)非常轻巧,非常适合您所做的工作类型(尤其是迭代子元素)。
我建议您花几分钟的时间阅读“入门”页面和一些解释子元素迭代的教程。
使用 PURE 的示例
HTML 代码:
<div id="sample">
<div class="currency">EUR</div>
<div class="balance">0</div>
<table>
<tr class="date">
<td>date</td><td class="value"></td>
</tr>
<tr class="address">
<td>address</td><td class="value"></td>
</tr>
</table>
<div>
JavaScript 代码(请注意data
最后一条语句中使用的变量与您问题中的变量相同)
//declaration of the actions PURE has to do
var directive = {
'.currency': 'currency',
'.balance': 'balance',
'table': {
'trans<-tranlist': {
'tr.date .value': 'trans.date',
'tr.address .value': 'trans.address'
}
}
};
// note the use of render instead of autoRender
$('#sample').render(data, directive);
输出HTML如下:
<div id="sample">
<div class="currency"></div>
<div class="balance"></div>
<table>
<tr class="date">
<td>date</td><td class="value">323</td>
</tr>
<tr class="address">
<td>address</td><td class="value">a</td>
</tr>
<tr class="date">
<td>date</td><td class="value">121</td>
</tr>
<tr class="address">
<td>address</td><td class="value">s</td>
</tr>
</table>
<div>
当然,您可以做更多的事情,例如从 JSON 对象设置类属性或过滤项目等。