アプローチを再考することを検討します。 innerHTML
Internet Explorer のテーブルでは読み取り専用であるため、現在の方法では相互運用性の問題が発生することになります。を指定する代わりに、DOM を使用して要素を構築するようにコードを再構築できますinnerHTML
。これはかなり単純で、はるかに効率的 (パーサーを呼び出さない) で、ブラウザー間の互換性が高くなります。
Mozilla はこれについて Microsoft に同意しているようで、element.innerHTML
ドキュメントを引用しています。
[innerHTML] は、テーブル全体またはセルの内容を書き込むために使用できますが、テーブルの一部を書き込むためには使用しないでください。そのためには W3C DOM メソッドを使用する必要があります。
このプロセスには、DOM レベル 2 メソッドの使用が含まれtable.insertRow()
ますtr.insertCell()
。まともな読み物については、Building Tables Dynamically (MSDN)を参照してください。
例 (MDC から):
function addRow(tableID)
{
// Get a reference to the table
var tableRef = document.getElementById(tableID);
// Insert a row in the table at row index 0
var newRow = tableRef.insertRow(0);
// Insert a cell in the row at index 0
var newCell = newRow.insertCell(0);
// Append a text node to the cell
var newText = document.createTextNode('New top row')
newCell.appendChild(newText);
}