2016-06-19 58 views
1

我需要在JS中創建一個表格並在頁面中顯示它,但它似乎不起作用。我有兩個函數,第一個是實際創建表格,第二個是對錶格中的元素進行排序。我嘗試在id爲showlist的html中創建一個簡單的div,但該表未顯示在頁面中。請參閱下面的代碼。如何在JS中創建表格

function myfunction() { 
    var array2 = []; 
    var list = "<table border ='1'>"; 
    array2.sort(order); 

    list = list + "<tr>"; 
    list = list + "<td colspan = '2'> TABLE </td>"; 
    list = list + "</tr>"; 
    list = list + "<tr>"; 
    list = list + "<td> PRICE</td>"; 
    list = list + "</tr>"; 

    for (i = 0; i <= array2.length; i++) { 
    list = list + "<tr>"; 
    list = list + "<td>" + array2[i].name + "</td>"; 
    list = list + "<td>" + array2[i].price + "</td>"; 
    list = list + "</tr>"; 
    } 
    list = list + "</table>"; 
    $("#showlist").html(list); 
} 

function order(n1, n2) { 
    if (n1.price > n2.price) { 
    return 1; 
    } else { 
    if (n1.price < n2.price) { 
     return -1; 
    } else { 
     return 0; 
    } 
    } 
} 
+0

'array2'爲空數組....... –

+0

@PranavCBalan抱歉,我忘了加上其它陣列,它實際上是一個對象數組。 – Gonzalo

+0

可以在堆棧片段中重現問題 –

回答

3

您的循環從0array2.length<=運行時,它應該是< - 從0array2.length-1

for (i = 0; i < array2.length; i++) { 
//   ^_ Notice change here 
    ... 
} 

否則,最後一次迭代會拋出未定義的錯誤。

Uncaught TypeError: Cannot read property 'name' of undefined


Fiddle Example