var menuStarters = [["chicken", "5.00"], ["salad", "4.11"], ["soup", "3.88"]];
document.getElementById("menu").innerHTML += '<table>';
for (var i = 0; i < menuStarters.length; i++)
{
document.getElementById("menu").innerHTML += '<tr><td>' + menuStarters[i][0] + '</td><td>' + menuStarters[i][1] + '</td></tr>';
}
document.getElementById("menu").innerHTML += '</table>';
我确信我可能错过了一些明显的东西。
答案 0 :(得分:3)
您不能在文档中包含部分标记。向<table>
添加开口innerHTML
将导致插入完整(已关闭)标记。后续添加内容不在表格中,其中tr
和td
是非法的。
首先构建字符串,然后将其添加到容器中:
var menuStarters = [
["chicken", "5.00"],
["salad", "4.11"],
["soup", "3.88"]
];
var thtml = '<table>';
for (var i = 0; i < menuStarters.length; i++) {
thtml += '<tr><td>' + menuStarters[i][0] + '</td><td>' + menuStarters[i][1] + '</td></tr>';
}
thtml += '</table>';
document.getElementById("menu").innerHTML += thtml
<div id="menu"></div>
答案 1 :(得分:1)
我在这里创造了一个小提琴
https://jsbin.com/jeguka/edit?html,js,output
var menuStarters = [["chicken", "5.00"], ["salad", "4.11"], ["soup", "3.88"]];
var html = '<table>';
menuStarters.forEach(function(item, index){
html += '<tr><td>' + item[0] + '</td><td>' + item[1] + '</td></tr>';
});
html += '</table>';
document.getElementById("menu").innerHTML = html;