簡體   English   中英

錯誤:無法讀取未定義的屬性“ replaceChild”

[英]Error: Cannot read property 'replaceChild' of undefined

保存記錄時,我試圖更新表以顯示新行。 我的代碼當前將再次與現有表一起加載整個表。 例如,我看到的是第1-15行,然后添加一行並看到總共31個行,第1-15行,然后是1-16行都在同一張表中。

這是我的replace函數的代碼,該代碼在需要替換數據時調用我的原始load函數。 我基於另一個我看到的例子。

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專家,因此不勝感激。

getElementsByTagName函數返回一個HTML集合 (類似於數組的對象),這意味着您必須指定所需的數組中的哪一項(即使只有一項)。

因此,您的代碼基本上應該是:

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

或者,您可以使用querySelector僅返回第一個匹配的元素。 像這樣:

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

getElementsByTagName實際上返回元素的集合,因此parentNode不起作用。 要獲取實際的DOM節點,請執行以下操作。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM