删除子元素时出错

时间:2010-10-11 23:43:22

标签: javascript

我在最后一个输入框中有一堆输入框和一个按钮,可以添加更多输入框。单击添加按钮时,我在删除按钮时遇到问题。

http://gist.github.com/621417

我在尝试删除子元素时收到此错误。

错误:未捕获异常:[例外...“组件返回失败代码:0x80004003(NS_ERROR_INVALID_POINTER)[nsIDOMHTMLDivElement.removeChild]”nsresult:“0x80004003(NS_ERROR_INVALID_POINTER)”位置:“JS框架 < / p>

1 个答案:

答案 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电话的前一行。