我在最后一个输入框中有一堆输入框和一个按钮,可以添加更多输入框。单击添加按钮时,我在删除按钮时遇到问题。
我在尝试删除子元素时收到此错误。
错误:未捕获异常:[例外...“组件返回失败代码:0x80004003(NS_ERROR_INVALID_POINTER)[nsIDOMHTMLDivElement.removeChild]”nsresult:“0x80004003(NS_ERROR_INVALID_POINTER)”位置:“JS框架 < / p>
答案 0 :(得分:1)
首次创建addBtn
元素时,您只需设置name
属性。
您还需要设置id
属性。
因此,在createCreditBalanceInputs
中,更改代码以包含此行(addBtn.id = "addBtn";
):
var addBtn = document.createElement('input');
addBtn.type = 'button';
addBtn.style.marginLeft = "20px";
addBtn.style.marginTop = "5px";
addBtn.name="addBtn";
addBtn.id = "addBtn";
addBtn.value="Add";
然后,您不需要每次都创建按钮。您可以继续追加它,DOM挂钩会自动将其从之前的位置删除。您可以将addCreditBalance
更改为更像这样:
var addButton = document.getElementById('addBtn');
/*
//Add button
var addBtn = document.createElement('input');
addBtn.type = 'button';
addBtn.style.marginLeft = "20px";
addBtn.style.marginTop = "5px";
addBtn.name="addBtn";
addBtn.value="Add";
addBtn.addEventListener ('click',addCreditBalance,false);
*/
container.appendChild(addButton);
并删除您调用removeChild
电话的前一行。