如何使用JavaScript(js)克隆和删除html表单?

如何使用JavaScript(js)克隆和删除html表单?,javascript,html,forms,removechild,Javascript,Html,Forms,Removechild,我想克隆一个表单,然后可以选择删除刚刚创建的表单。我知道如何克隆它,但不知道如何删除它。我只能移除原形,但不能移除景泰蓝 这是我的代码: 函数重复(id){ var elmnt=document.getElementById(id); var cln=elmnt.cloneNode(真); var-num=1; cln.id=id+num; 文件.正文.附件(cln); } 函数删除(id){ var elem=document.getElementById(id); elem.parentN

我想克隆一个表单,然后可以选择删除刚刚创建的表单。我知道如何克隆它,但不知道如何删除它。我只能移除原形,但不能移除景泰蓝

这是我的代码:

函数重复(id){
var elmnt=document.getElementById(id);
var cln=elmnt.cloneNode(真);
var-num=1;
cln.id=id+num;
文件.正文.附件(cln);
}
函数删除(id){
var elem=document.getElementById(id);
elem.parentNode.removeChild(elem);
}

复制品
去除

您根本不需要
id
s

最小的更改是将
传递到
onclick
中删除
(并且,由于您不希望它提交表单,请给它一个
类型
):

您可以对“复制”进行类似的更改:

function duplicate(button) {
    var form = button.closest("form").cloneNode(true);
    document.body.appendChild(form);
}
请确保从表单中删除
id
,因为它不是必需的,并且会被上面的代码复制

实例:

功能删除(按钮){
var form=按钮。最近的(“形式”);
form.parentNode.removeChild(form);
}
功能复制(按钮){
变量形式=按钮。最近的(“形式”)。克隆节点(真);
文件.正文.附件(表格);
}

复制品
下一个

谢谢,成功了。如何隐藏第一个表单上的“删除”按钮?@AndoniDíezGuerra-给它
style=“display:none”
,克隆时,在表单中找到它,并在其上执行
.style.display=“
,使其使用默认的显示设置。我理解第一部分,但不理解第二部分。当我复制表单时,除第一个表单外,所有表单都将有两个按钮。那么,我如何找到为显示移除按钮而创建的最后一个表单?@AndoniDíezGuerra-答案中的代码示例显示了这样做的过程。如果起始点是表单中的一个按钮,则通过
var form=btn.closest(“表单”)获取表单
在表单中查找一个按钮(带有我添加的类),
var btn=form.closest(“.form remove”)。我正在这样做,但它说btn是一个空值
function remove(button) {
    var form = button.closest("form");
    form.parentNode.removeChild(form);
}
function duplicate(button) {
    var form = button.closest("form").cloneNode(true);
    document.body.appendChild(form);
}