【发布时间】:2021-11-01 04:27:02
【问题描述】:
您好,在下面的代码中,我如何从 DOM 中删除前一个元素并用新元素替换它。每次我按下按钮时都应该这样做。目前,每次我按下按钮时,它都会不断向 DOM 添加新元素。
let arr = [
{name: 'John', age: 31},
{name: 'Eric', age: 55},
{name: 'Kyle', age: 80},
{name: 'Pedro', age: 44},
{name: 'Ali', age: 35},
];
let btn = document.querySelector('button');
btn.addEventListener('click', () => {
arr.map(info => {
let p = document.createElement('p');
let container = document.querySelector('.container');
if(p === undefined){
p.remove();
}
p.append(info.name);
container.append(p);
})
})
【问题讨论】:
-
p === undefined永远不会是真的。不确定您在哪里检查“上一个元素”。您可以使用replaceChildren替换container的所有内容。这是您需要的还是您需要现有元素的其他子集? -
您应该在您的问题中添加minimal reproducible example。
-
你误用了
map。如果您不使用map生成的值,请使用forEach。见JavaScript: Difference between .forEach() and .map()。 -
您是否只是在问如何在单击按钮时遍历数组并用下一个条目替换每个条目。因为目前您正在添加所有。
标签: javascript loops dom