Javascript 使用DIV中的按钮删除DIV

Javascript 使用DIV中的按钮删除DIV,javascript,html,css,Javascript,Html,Css,我有以下代码,它向TextBoxContainer div添加了一个新的TextBox和两个新的“按钮” <div id="TextBoxContainer" style=""> <div class="input-group"> <textarea rows="2" name="DynamicTextBox" class="form-control" value="" aria-describedby="Tb"></textar

我有以下代码,它向TextBoxContainer div添加了一个新的TextBox和两个新的“按钮”

<div id="TextBoxContainer" style="">
    <div class="input-group">
        <textarea rows="2" name="DynamicTextBox" class="form-control" value="" aria-describedby="Tb"></textarea>
        <span class="input-group-addon glyphicon glyphicon-plus" id="Tb" onclick="AddTextBox()"></span>
    </div>
</div>

要清除(删除)新添加的DIV-textbox和按钮?

只需调用
DIV.parentNode.remove()
删除该节点

函数AddTextBox(){
var div=document.createElement('div');
div.innerHTML=GetDynamicTextBox(“”);
document.getElementById(“TextBoxContainer”).appendChild(div);
}
函数GetDynamicTextBox(值){
返回“”+
'' +
“RemoveTextBox”+
“AddTextBox”+
''
}
函数RemoveTextBox(div){
div.parentNode.remove();
}

添加文本框

只需调用
div.parentNode.remove()
删除该节点

函数AddTextBox(){
var div=document.createElement('div');
div.innerHTML=GetDynamicTextBox(“”);
document.getElementById(“TextBoxContainer”).appendChild(div);
}
函数GetDynamicTextBox(值){
返回“”+
'' +
“RemoveTextBox”+
“AddTextBox”+
''
}
函数RemoveTextBox(div){
div.parentNode.remove();
}

添加文本框

remove
函数的问题在于,您试图通过获取
deleteButton
parentNode
removeChild
。delete按钮的
parentNode
不是
TextBoxContainer
的直接子级,因此它用于抛出下面的错误,这是不言自明的

Uncaught NotFoundError:未能在“节点”上执行“removeChild”:节点 要删除的节点不是此节点的子节点。

因此,在下面的方法中,您使用
document.createElement
创建一个新的
div
,使用
setAttribute
-
输入组
添加到特定的
div
,然后它将是
TextBoxContainer
的直接子级

function AddTextBox() {
    var div = document.createElement('DIV');
    div.setAttribute('class',"input-group");
    div.innerHTML = GetDynamicTextBox("");
    document.getElementById("TextBoxContainer").appendChild(div);
}

function GetDynamicTextBox(value) {
      return  '<textarea rows="2" name="DynamicTextBox" class="form-control" value="" aria-describedby="Tb1 Tb2"></textarea>' +
      '<span class="input-group-addon glyphicon glyphicon-minus" id="Tb1" onclick="RemoveTextBox(this)"></span>' +
      '<span class="input-group-addon glyphicon glyphicon-plus" id="Tb2"  onclick="AddTextBox()"></span>' +
      '</div>'
}

function RemoveTextBox(div) {
     document.getElementById("TextBoxContainer").removeChild(div.parentNode);
}
函数AddTextBox(){
var div=document.createElement('div');
div.setAttribute(“类”,“输入组”);
div.innerHTML=GetDynamicTextBox(“”);
document.getElementById(“TextBoxContainer”).appendChild(div);
}
函数GetDynamicTextBox(值){
返回“”+
'' +
'' +
''
}
函数RemoveTextBox(div){
document.getElementById(“TextBoxContainer”).removeChild(div.parentNode);
}

remove
函数的问题在于,您试图通过获取
deleteButton
parentNode
removeChild
。delete按钮的
parentNode
不是
TextBoxContainer
的直接子级,因此它用于抛出下面的错误,这是不言自明的

Uncaught NotFoundError:未能在“节点”上执行“removeChild”:节点 要删除的节点不是此节点的子节点。

因此,在下面的方法中,您使用
document.createElement
创建一个新的
div
,使用
setAttribute
-
输入组
添加到特定的
div
,然后它将是
TextBoxContainer
的直接子级

function AddTextBox() {
    var div = document.createElement('DIV');
    div.setAttribute('class',"input-group");
    div.innerHTML = GetDynamicTextBox("");
    document.getElementById("TextBoxContainer").appendChild(div);
}

function GetDynamicTextBox(value) {
      return  '<textarea rows="2" name="DynamicTextBox" class="form-control" value="" aria-describedby="Tb1 Tb2"></textarea>' +
      '<span class="input-group-addon glyphicon glyphicon-minus" id="Tb1" onclick="RemoveTextBox(this)"></span>' +
      '<span class="input-group-addon glyphicon glyphicon-plus" id="Tb2"  onclick="AddTextBox()"></span>' +
      '</div>'
}

function RemoveTextBox(div) {
     document.getElementById("TextBoxContainer").removeChild(div.parentNode);
}
函数AddTextBox(){
var div=document.createElement('div');
div.setAttribute(“类”,“输入组”);
div.innerHTML=GetDynamicTextBox(“”);
document.getElementById(“TextBoxContainer”).appendChild(div);
}
函数GetDynamicTextBox(值){
返回“”+
'' +
'' +
''
}
函数RemoveTextBox(div){
document.getElementById(“TextBoxContainer”).removeChild(div.parentNode);
}

我为这个问题做了一个jsfiddle,面向所有想帮助解决这个问题的人:
Javascript
jquery
solution?Javascript。我主要是做后端ASP.Net编码,所以我没有太多的JS经验,我正在修改我在网上找到的JS的源代码。如果删除输入组div,代码就可以工作,但是我需要它来整洁地显示按钮。我为此制作了一个jsfiddle,供所有希望帮助解决此问题的人使用:
Javascript
jquery
solution?Javascript。我主要是做后端ASP.Net编码,所以我没有太多的JS经验,我正在修改我在网上找到的JS的源代码。如果删除输入组div,代码就可以工作,但是我需要它来整齐地显示按钮。谢谢你的回答和解释!随时快乐编码…)谢谢你的回答和解释!随时快乐编码…)
function RemoveTextBox(div) {
    document.getElementById("TextBoxContainer").removeChild(div.parentNode);
}
function AddTextBox() {
    var div = document.createElement('DIV');
    div.setAttribute('class',"input-group");
    div.innerHTML = GetDynamicTextBox("");
    document.getElementById("TextBoxContainer").appendChild(div);
}

function GetDynamicTextBox(value) {
      return  '<textarea rows="2" name="DynamicTextBox" class="form-control" value="" aria-describedby="Tb1 Tb2"></textarea>' +
      '<span class="input-group-addon glyphicon glyphicon-minus" id="Tb1" onclick="RemoveTextBox(this)"></span>' +
      '<span class="input-group-addon glyphicon glyphicon-plus" id="Tb2"  onclick="AddTextBox()"></span>' +
      '</div>'
}

function RemoveTextBox(div) {
     document.getElementById("TextBoxContainer").removeChild(div.parentNode);
}