繁体   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