2016-06-19 2 views
1

Мне нужно создать таблицу в JS и показать ее на странице, но она не работает. У меня есть две функции, первая из которых фактически создает таблицу, а вторая - для упорядочивания элементов в таблице. Я попытался создать простой div в html с id showlist, но таблица не отображается на странице. См. Код ниже.Как создать таблицу в 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

Вы можете воспроизвести проблему в стеке snippet –

ответ

3

Ваш цикл <= бежит от 0 к array2.length, он должен быть < - от 0 до array2.length-1.

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

Else, последняя итерация породила бы неопределенные ошибки.

Uncaught TypeError: Cannot read property 'name' of undefined


Fiddle Example

Смежные вопросы