Javascript:从HTML动态地将行添加到IE中的表时出现问题

时间:2010-02-24 20:39:33

标签: javascript jquery html internet-explorer

我查看了其他一些问题,例如this one,但他们没有解决这个问题:

当我在IE(8)中运行此代码时:

$("<tr><td>1</td><td>A</td></tr>").appendTo("#myTable tbody"); 

我最终将这个HTML添加到表格的正文中:

<TR>
1</TD><//TD>
<TD>
</TD>
A</TD><//TD></TR><//TR>
</TR>

有什么想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

你要做的事情真的很难做到。这是因为<TR>元素在<TABLE>范围之外没有意义。虽然解释你的意图对于我们人类来说很容易,但是jQuery很可能不够聪明,并做正确的事情。

这里的正确之处是:

var tbody = document.getElementById('myTable').getElementsByTagName('tbody')[0];
var row = document.createElement('tr');
tbody.appendChild(row);
var cell = document.createElement('td');
cell.innerHTML = '1';
row.appendChild(cell);
cell = document.createElement('td');
cell.innerHTML = 'A';
row.appendChild(cell);

现在你的问题中的代码更加紧凑,但这并不意味着jQuery需要在幕后做更少的工作才能真正达到预期的效果。

答案 1 :(得分:1)

$("#myTable tbody").append("<tr><td>1</td><td>A</td></tr>"); 

它是一样的,但它在jQuery中做了完全不同的事情