Javascript innerHTML.replace不在firefox中工作,但在IE中工作

Javascript innerHTML.replace不在firefox中工作,但在IE中工作,javascript,firefox,innerhtml,Javascript,Firefox,Innerhtml,我想重命名按钮的onclick方法。首先,我的按钮有以下代码: <input id="my_button" class="update field-button" type="button" onclick="add( this )" value="ADD Something" title="ADD Item" name="my_button"></input> parentNode是一个变量: var parentNode = removeButton.parentN

我想重命名按钮的onclick方法。首先,我的按钮有以下代码:

<input id="my_button" class="update field-button" type="button" onclick="add( this )" value="ADD Something" title="ADD Item" name="my_button"></input>
parentNode
是一个变量:

var parentNode = removeButton.parentNode;

在Internet Explorer中它可以工作,但在firefox中不工作这不是实现所需功能的方法,单击处理程序可以完全与javascript绑定

请尝试以下操作:

document.getElementById('my_button').onclick = function() {
  var toggle = false;
  return function (e) {
    toggle = !toggle;
    toggle ? add(this) : remove(this);
  };
}();

虽然我会推荐rich的答案并将其逻辑放入clickhandler,但您的问题可能会很有趣

Firefox正确地进行替换,并调用buttons native remove方法,因为单击处理程序具有按钮的作用域。所以

onclick="remove( this )"

onclick="document.getElementById('my_button').remove();"

按钮将从dom中删除。

我建议只运行一个函数,并使用逻辑来确定它是该函数中的添加还是删除,而不是像这样尝试更改处理程序
onclick="remove( this )"
onclick="document.getElementById('my_button').remove();"