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

Ari*_*iel 5 html javascript jquery internet-explorer

我看了一些像这样的问题,但他们没有解决这个问题:

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

$("<tr><td>1</td><td>A</td></tr>").appendTo("#myTable tbody"); 
Run Code Online (Sandbox Code Playgroud)

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

<TR>
1</TD><//TD>
<TD>
</TD>
A</TD><//TD></TR><//TR>
</TR>
Run Code Online (Sandbox Code Playgroud)

任何的想法?提前致谢.

lev*_*vik 1

你想要做的事情确实很难正确完成。这是因为一个<TR>元素在 a 的范围之外是没有意义的<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);
Run Code Online (Sandbox Code Playgroud)

现在,您问题中的代码无疑更加紧凑,但这并不意味着 jQuery 需要在幕后做更少的工作才能真正实现所需的结果。