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はreadOnlyです。

解決:

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

はい、MSDNが説明したように、innerHTMLプロパティはIE の要素に対して読み取り専用です。<tr>

innerHTML プロパティは、col、colGroup、frameSet、html、head、style、table、tBody、tFoot、tHead、title、および tr オブジェクトでは読み取り専用です。

document.title プロパティを使用して、title 要素の値を変更できます。

table、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 に答える