我有行,我需要动态附加控件。它的代码如下
<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"