0

我有行,我需要动态附加控件。它的代码如下

<script type="text/javascript">
function AddRowContent()
{
    //Here trRow is a id of row for which I need to append the data.
    var d=document.getElementById("trRow");
    d.innerHTML="<td>Aliases</td>";     
}
</script>

代码在其他浏览器中运行良好,但在 Internet Explorer 中无法正常运行。请让我知道解决方案或更好的方法来做到这一点。

4

3 回答 3

2

在 IE 中,tr 元素上的 innerHTML 是只读的。

解决方案:

var d=document.getElementById("trRow");
var td = document.createElement('td');
td.innerHTML = "Aliases";
d.appendChild(td);
于 2012-08-14T07:12:51.357 回答
1

是的,innerHTML属性对于 IE 中的元素是只读的,如MSDN所述<tr>

innerHTML 属性在 col、colGroup、frameSet、html、head、style、table、tBody、tFoot、tHead、title 和 tr 对象上是只读的。

您可以使用 document.title 属性更改 title 元素的值。

要更改表格、tFoot、tHead 和 tr 元素的内容,请使用动态构建表格中描述的表格对象模型。但是,要更改特定单元格的内容,您可以使用 innerHTML。

因此,要操作您的表格,请尝试阅读Building Tables Dynamically并找到一个解决方案,对于您的简单情况,使用 DOM API 可能是一个兼容的解决方案:

var td = document.createElement('td');
td.innerHTML = 'Aliases';
// Remove all existing <td> element
while (d.firstChild) {
    d.removeChild(d.firstChild);
}
d.appendChild(td);
于 2012-08-14T07:16:13.647 回答
0
var firstRow=document.getElementById("myTable").rows[0];
var x=firstRow.insertCell(-1);
x.innerHTML="New cell"
于 2012-08-14T07:19:31.180 回答