2013-02-19 107 views
0

我有此Javascript地圖結構:另一種方法來創建HTML表

鍵(字符串) - 值(陣列())

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

因此,基本上,這個值是與所有的customerIds數組,所有客戶名稱,等等。 我要創建將在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); 
} 
+1

這將是,如果你更好發佈了你創建的JavaScript代碼,試圖解決這個問題,而不是盲目地要求其他人爲你實現你的工作。 – PetersenDidIt 2013-02-19 18:51:26

+0

什麼是您的*實際*數據結構?你發佈的內容無效。 – bfavaretto 2013-02-19 18:52:11

+0

這不是複雜的,但你是對的,這是一個很重要的任務代碼。我認爲如果你知道去哪裏看,可能會有一些圖書館能夠把你的一些工作拿出來;可能jQuery會幫助很多。 – 2013-02-19 18:52:33

回答

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); 
+0

wtf:o哈哈哈它工作!!!!!你是一個天才!!謝謝你!不能相信它的工作:無論如何,我無法做到這一點,壽。 ! – msqar 2013-02-19 19:23:47

0

你總是可以嘗試使用模板解決方案,如handlebars.js - 這使得吐出的標記,因爲它可以簡單。

相關問題