2017-02-16 13 views
0

レコードを保存するときに新しい行を表示するようにテーブルを更新しようとしています。私のコードは現在、既存のテーブルとともにテーブル全体を再度読み込みます。たとえば、1〜15行目が表示されている場合は、1行を追加して合計31行、1〜15行、1〜16行をすべて同じテーブルに表示します。エラー:未定義の 'replaceChild'プロパティを読み取ることができません

ここでは、データを置き換えるときに元のロード機能を呼び出すreplace関数のコードを示します。これを、私が見た別の例に基づいています。

function replaceData() { 
    var old_tbody = document.getElementsByTagName('tbody'); 
    var new_tbody = document.createElement('tbody'); 
    loadData(new_tbody); 
    old_tbody.parentNode.replaceChild(new_tbody,old_tbody); 

    console.log("Data replaced"); 
} 

私は明らかにJavaScriptのエキスパートではないので、助けていただければ幸いです。

+0

'var old_tbody = document.querySelector(" tbody ")' –

答えて

1

getElementsByTagName関数はHTML Collection(配列のようなオブジェクト)を返します。つまり、その配列の項目を指定する必要があります(項目が1つしかない場合でも)。

だからあなたのコードは、基本的には、次のようになります。

var old_tbody = document.getElementsByTagName('tbody')[0]; 

それとも、最初のマッチした要素を返すquerySelectorを使用することができます。このように:

var old_tbody = document.querySelector('tbody'); 
0

getElementsByTagName実際にそうのparentNode が動作しない、要素のコレクションを返します。実際のDOMノードを取得するには、次のようにします。

var old_tbody = document.getElementsByTagName('tbody')[0]; 
関連する問題