我正在尝试将此代码添加到for循环中,但它给了我以下错误
“无法在“节点”上执行“ appendChild”:参数1不是类型 “节点””
let tableBody = document.querySelector('#table tbody');
let row1 = document.createElement('tr');
let row2 = row1.cloneNode(true);
let row3 = row1.cloneNode(true);
let row4 = row1.cloneNode(true);
let row5 = row1.cloneNode(true);
tableBody.appendChild(row1);
tableBody.appendChild(row2);
tableBody.appendChild(row3);
tableBody.appendChild(row4);
tableBody.appendChild(row5);
我正在尝试这样
for(i = 1; i <=5; i++){
tableBody.appendChild('row' + i);
}
答案 0 :(得分:0)
您没有附加实际对象。您要附加一个字符串。
尝试一下:
let tableBody = document.querySelector('#table tbody');
let rows = []
rows.push(document.createElement('tr'));
rows.push(rows[0].cloneNode(true));
rows.push(rows[0].cloneNode(true));
rows.push(rows[0].cloneNode(true));
rows.push(rows[0].cloneNode(true));
rows.forEach(row => {
tableBody.appendChild(row);
})
答案 1 :(得分:0)
您的代码tableBody.appendChild('row' + i);
不起作用的原因'row' + i
只是一个sting,它不是一个包含节点的变量,
将所有行放入数组并从那里添加
尝试
let tableBody = document.querySelector('#table tbody');
let rows=[];
rows.push(document.createElement('tr'));
rows.push(row1.cloneNode(true));
rows.push(row1.cloneNode(true));
rows.push(row1.cloneNode(true));
rows.push(row1.cloneNode(true));
for(i = 0 ; i <rows.length; i++){
tableBody.appendChild(row[i]);
}
建议阅读:数组,变量,函数
答案 2 :(得分:0)
appendChild使用DOM节点对象(https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild),正如其他人所提到的,您正在提供一个字符串。
您似乎想创建一个包含5行的表,如果是这样,您可以按照以下方式进行操作:
for(i = 1; i <=5; i++){
tableBody.appendChild(document.createElement('tr'));
}