Javascript 删除动态创建的输入

Javascript 删除动态创建的输入,javascript,Javascript,那么,有没有一种简单的方法来获取最后一个节点,这样我就可以简单地删除最后一个节点的输入?deleteinput()函数 var form=document.getElementById(“表单”); 函数newinput(){ var输入=document.createElement(“输入”); input.type=“text”; 表单。追加子项(输入); } 函数deleteinput(){ form.removeChild(); } 您还应该添加输入s一些id,这样您就可以通过提

那么,有没有一种简单的方法来获取最后一个节点,这样我就可以简单地删除最后一个节点的输入?deleteinput()函数



var form=document.getElementById(“表单”);
函数newinput(){
var输入=document.createElement(“输入”);
input.type=“text”;
表单。追加子项(输入);
}
函数deleteinput(){
form.removeChild();
}

您还应该添加
输入
s一些
id
,这样您就可以通过提供
id
作为
deleteinput()
函数的参数来删除它们

您的函数将如下所示

function deleteinput(name) {
    var input = document.getElementByName(name);
    form.removeChild(input);
}
此外,
newinput()
也将相应地更改:

function newinput(name) {
    var input = document.createEleement("input");
    input.type = "text";
    input.name = name;
    form.appendChild(input);
}
您还可以创建一些全局整数,并通过一些字符串+全局变量的递增值自动生成输入的名称-这样您就不需要将
name
参数传递给
newinput()
函数


我不确定这将100%的工作,我没有测试它。也许您需要稍微调整一下,但主逻辑应该是正确的。

您可以使用
lastChild
属性来获取最后一个子项,并使用
以前的同级
逐步遍历它们,直到获得
输入

function deleteinput() {
    for (var child = form.lastChild; child.nodeName.toLowerCase() != 'input'; child = child.previousSibling) {
    }
    if (child) {
        form.deleteChild(child);
    }
}

是的,您可以通过这种方式获取并删除最后一个元素

var ele = document.getElementById("parent element Id").lastChild;
ele.remove();

有没有办法让它只删除输入,而不是删除表单中的所有子项?我添加了一个循环,以相反的顺序遍历子项,直到它到达一个输入
var ele = document.getElementById("parent element Id").lastChild;
ele.remove();