使用 Javascript,我正在尝试在表格中间添加一个新表格行,其中新表格行是预先存在的行之一的副本。
stackoverflow上有很多类似的问题,但似乎没有一个可以帮助我解决这个问题。
function AddRow()
{
var mainTable = document.getElementById('mainTable');
mainTable.insertBefore(
mainTable.rows[0].cloneNode(true),
mainTable.rows.childNodes[2]);
}
我知道问题存在于传递给 insertBefore() 的最后一个变量中,就好像我把这个留空一样,代码会正确执行并将克隆的第一行插入到表的末尾(如果不存在第二个参数,它的行为就像appendRow().
我收到错误“无法读取未定义的属性 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))
效果很好!问题是我不想将它添加到表格的末尾。