2012-08-14 157 views
0

我有行,为此我需要动态地附加控件。它 代码如下与Internet Explorer的Javascript问题

<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正常工作。 请让我知道解决方案或更好的方式来做到这一点。

+0

问更多的问题,并希望人们之前帮助你 - 请回顾你以前的,也许接受一些答案? – Marcus 2012-08-14 07:10:01

回答

2

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

解决方案:

var d=document.getElementById("trRow"); 
var td = document.createElement('td'); 
td.innerHTML = "Aliases"; 
d.appendChild(td); 
1

是,innerHTML属性是只读在IE <tr>元件,如MSDN描述:

文字属性是只读的col,colGroup,frameSet,html,head,style,table,tBody,tFoot,tHead,title和tr对象。

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

要更改表格的内容,tFoot,tHead和tr元素,请使用Building Tables Dynamically中描述的表格对象模型。但是,要更改特定单元格的内容,可以使用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); 
0
var firstRow=document.getElementById("myTable").rows[0]; 
var x=firstRow.insertCell(-1); 
x.innerHTML="New cell"