innerHTML正在添加tbody,为什么?

时间:2012-01-26 17:01:47

标签: innerhtml

我正在用Javascript创建一个表,所以在循环中有

if (formFieldData == 'cleanSlate')
{
  document.getElementById('productsTable').innerHTML = '';
  // clears what was there before, so we're left with an empty <table>
} else
{
  document.getElementById('productsTable').innerHTML += '<tr></tr>';
}

经过几次迭代之后我还剩下这个......不知道如何在没有尖括号的情况下为你显示HTML:     tbody tr / tr / tbody tbody tr / tr / tbody

为什么要插入这些tbodys,我怎么能阻止它呢?

1 个答案:

答案 0 :(得分:3)

这是什么浏览器?

你不应该真正构建一个带有innerHTML操作的表。它只是一个字符串操作,浏览器将没有CLUE,你按顺序添加多行。所以它会试图“清理”你的“破碎”的HTML。

如果没有别的,至少在一个单独的字符串中构建表行,然后在循环完成后将变量填充到innerHTML中:

var rows;
for(...) {
   if (...) {
      rows += '<tr></tr>\n';
   }
}
document.getElementById('productsTable').innerHTML = rows;

当然,这个确切的代码不起作用 - 这只是一个例子。