向innerHTML中添加table、tr、td标签并不会创建表格行。

3
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>';

我相信我可能漏掉了一些显而易见的东西。

2个回答

3
您不能在文档中使用部分标签。向innerHTML添加开头的<table>将导致完整(关闭)标签被插入。后续添加位于表格外,其中和是非法的。

首先构建字符串,然后再将其添加到容器中。

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
我已经在这里创建了一个fiddle。

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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接