我需要在JS中创建一个表并在页面中显示它,但它似乎不起作用。我有两个函数,第一个实际创建表,第二个函数来排序表中的元素。我尝试在标识为showlist
的html中创建一个简单的div,但该表未出现在页面中。请参阅下面的代码。
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 :(得分:3)
您的for循环<=
从0
运行到array2.length
,应该是<
- 从0
到array2.length-1
。
for (i = 0; i < array2.length; i++) {
// ^_ Notice change here
...
}
否则,最后一次迭代会抛出未定义的错误。
未捕获的TypeError:无法读取属性&#39; name&#39;未定义的
<强> Fiddle Example 强>