2016-10-04 7 views
0

JSONオブジェクトからテーブルを作成しています。最初のステップは、テーブル・コラム・ヘッダを構築することです:HTMLテーブルの作成

列ヘッダと行を生成
jq_tblRow = $('<tr>') ; 
obj_Report.fieldMetadata.forEach(function(elt) { 
    jq_tblRow.append('<th>' + elt.name) 
}) ; 

<tr><th>Item Type</th><th>Title</th> ... etc... </tr> 

はTABLE & THEADタグを持つことをラップする簡単な方法はありますか?私が最終的に思いついたのはここです。それは動作しますが、 "。append()"への2回の呼び出しは扱いにくいようです。

jq_tblRow = $('<table>').append($('<thead>').append(jq_tblRow)); 

Iは等、後に、前に、アペンド、appendTo、プリペンドを使用し、その順列

.append('<table><thead>') 

の様々な組み合わせを試してみました。

+0

が同じことを行うことができ、他の方法があるが、それがすべて1つのライナーに収まる...どのくらいに簡単、あなたはそれを得ることを期待しますか? – charlietfl

+0

しかし、 'jq_tblRow'は実際には、テーブル全体があなたが追加した行ではなく...その割り当てが意図されているかわからないことに注意してください。 – charlietfl

答えて

1

すでにjQueryの要素を持っている場合は、あなたには、いくつかの追加タグでそれをラップするwrap()機能を使用することができます:あなたは、より複雑な操作を処理する必要がある場合

jq_tblRow = $('<tr>') ; 
obj_Report.fieldMetadata.forEach(function(elt) { 
    jq_tblRow.append('<th>' + elt.name) 
}); 
// After you have your row in the DOM, wrap it with table/thead tags 
jq_tblRow.wrap('<table><thead></thead></table>'); 

wrap()機能も、機能を受け入れることができますまたは各辺を連結の外観好適:

jq_tblRow.wrap(function(){ 
    return '<table><thead>' + this.innerHTML + '/thead></table>'; 
}); 
+0

私のために働きます。ありがとう! – mnemotronic

関連する問題