我正在用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,我怎么能阻止它呢?
答案 0 :(得分:3)
这是什么浏览器?
你不应该真正构建一个带有innerHTML操作的表。它只是一个字符串操作,浏览器将没有CLUE,你按顺序添加多行。所以它会试图“清理”你的“破碎”的HTML。
如果没有别的,至少在一个单独的字符串中构建表行,然后在循环完成后将变量填充到innerHTML中:
var rows;
for(...) {
if (...) {
rows += '<tr></tr>\n';
}
}
document.getElementById('productsTable').innerHTML = rows;
当然,这个确切的代码不起作用 - 这只是一个例子。