Javascript problems with Internet Explorer

Javascript problems with Internet Explorer

本文关键字:Explorer Internet with problems Javascript      更新时间:2023-09-26

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

<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 中正常工作。请让我知道解决方案或更好的方法。

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

溶液:

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

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

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

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

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

因此,要操作您的表,请尝试阅读动态构建表并找到解决方案,对于您的简单情况,使用 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);
var firstRow=document.getElementById("myTable").rows[0];
var x=firstRow.insertCell(-1);
x.innerHTML="New cell"