あなたの質問に正確に答えるわけではありませんが、自分で HTML を作成する代わりに、そのためにPure JavaScript Template Engine (jQuery プラグイン) を使用することをお勧めします。
エンジン (jQuery プラグイン) は非常に軽量で、実行する種類のジョブ (特に子要素の反復処理) に最適です。
Get Startedページと、子要素の反復を説明するいくつかのチュートリアルに文字通り数分費やすことをお勧めします。
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 オブジェクトからクラス属性を設定したり、アイテムをフィルタリングしたりするなど、もっと多くのことができます。