0

このJavascriptマップ構造を取得しました:

キー (文字列) - 値 (Array())

   String "customerId"    =   Array{"123123", "298191", "93202"}
   String "customerName"  =   Array{"fran", "nick", "jan"}
   String "pobox"         =   Array{"18239", "129319", "123123"}

したがって、基本的に、値はすべての customerIds、すべての customerNames などを含む配列です。作成したいテーブルは、次のように Javascript で生成されます。

customerId   customerName    pobox
123123         fran           18239
298191         nick           129319
93202          jan            123123

Javascriptで作ることは可能ですか?試してみましたが、とても複雑です:/

私はこれをやっています:

function createBodyRowsByMapObject(map, tbody) {

    for(a in map) {
        var arr = map[a];
        var row = document.createElement("tr");
        for(k in arr) {
                    //here i would be getting the array value.
            createTableData(row, arr[k]);
        }
    }
    tbody.appendChild(row);
}
4

2 に答える 2

2

データ構造は次のとおりであると想定します。

var obj = {
    "customerId":["123123","298191","93202"],
    "customerName":["fran","nick","jan"],
    "pobox":["18239","129319","123123"]
};

それをテーブルに変換するのはあなたが思っているよりも簡単です:

var table = document.createElement('table'), rows = [], k, l, i;
for( k in obj) {
    l = obj[k].length;
    for( i=0; i<l; i++) {
        if( !rows[i]) rows[i] = table.appendChild(document.createElement('tr'));
        rows[i].appendChild(document.createElement('td'))
               .appendChild(document.createTextNode(obj[k][i];
    }
}
document.body.appendChild(table);
于 2013-02-19T18:58:29.013 に答える
0

handlebars.jsなどのテンプレート ソリューションをいつでも使用してみることができます。これにより、マークアップを可能な限り簡単に吐き出すことができます。

于 2013-02-19T18:51:52.723 に答える