我有以下代码添加了一个新的TextBox和两个新的"按钮"到TextBoxContainer div。
<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>
以下代码在AddTextBox事件上执行:
function AddTextBox() {
var div = document.createElement('DIV');
div.innerHTML = GetDynamicTextBox("");
document.getElementById("TextBoxContainer").appendChild(div);
}
function GetDynamicTextBox(value) {
return '<div class="input-group">' +
'<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>'
}
创建此HTML代码:
<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 class="input-group">
<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>
</div>
</div>
如何在点击事件功能上修改RemoveTextBox(this):
function RemoveTextBox(div) {
document.getElementById("TextBoxContainer").removeChild(div.parentNode);
}
为了清除(删除)新添加的DIV - 文本框和按钮?
答案 0 :(得分:2)
您只需致电div.parentNode.remove();
即可删除该节点。
function AddTextBox() {
var div = document.createElement('DIV');
div.innerHTML = GetDynamicTextBox("");
document.getElementById("TextBoxContainer").appendChild(div);
}
function GetDynamicTextBox(value) {
return '<div class="input-group">' +
'<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)">RemoveTextBox</span>' +
'<span class="input-group-addon glyphicon glyphicon-plus" id="Tb2" onclick="AddTextBox()">AddTextBox</span>' +
'</div>'
}
function RemoveTextBox(div) {
div.parentNode.remove();
}
<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()">AddTextBox</span>
</div>
</div>
答案 1 :(得分:2)
<强> DEMO 强>
remove
功能的问题在于您通过获取removeChild
的{{1}}来TextBoxContainer
parentNode
。删除按钮的deleteButton
不是parentNode
的直接子项,因此它常常抛出错误,这是不言自明的。
未捕获NotFoundError:无法执行&#39; removeChild&#39;在&#39; Node&#39;:The 要删除的节点不是此节点的子节点。
以下是使用TextBoxContainer
创建新div
的方法,使用document.createElement
向特定class
添加input-group
- div
然后它将是setAttribute
TextBoxContainer