Javascript を使用して、テーブルの中央に新しいテーブル行を追加しようとしています。新しいテーブル行は、既存の行の 1 つのコピーです。
これに似た質問がstackoverflowにたくさんありますが、この問題を解決するのに役立つものはありませんでした.
function AddRow()
{
var mainTable = document.getElementById('mainTable');
mainTable.insertBefore(
mainTable.rows[0].cloneNode(true),
mainTable.rows.childNodes[2]);
}
insertBefore() に渡された最後の変数に問題があることはわかっています。これを空白のままにしておくと、コードが正しく実行され、複製された最初の行がテーブルの最後に挿入されます (2 番目のパラメーターが存在しない場合、次のように動作します)。appendRow().
「undefined のプロパティ 2 を読み取れません」というエラーが表示されます。これは、mainTable.rows.childNodes をインデックス付けする有効なオブジェクトとして認識していないことを意味していると思います。
次の方法も試してみましたが、テスト時に「NotFoundError: DOM Exception 8」というよりとらえどころのないエラーが発生しました
function AddRow()
{
var mainTable = document.getElementById('mainTable');
mainTable.insertBefore(
mainTable.rows[0].cloneNode(true),
mainTable.rows[2]);
}
編集:正常にmainTable.appendChild(mainTable.rows[0].cloneNode(true))
動作することに注意してください!問題は、テーブルの最後に追加したくないことです。