我有一些增加数字的全局变量。
var i = 0;
var num = (i-1)+2;
var i = num;
然后,我有一个检查数字的功能并显示我的HTML。
function showChild(){
if(num===1){
document.getElementById("childFirst00").style.display = "block";
document.getElementById("childLast00").style.display = "block";
document.getElementById("deleteChild00").style.display = "block";
num++;
}else if(num===2){
document.getElementById("childFirst01").style.display = "block";
document.getElementById("childLast01").style.display = "block";
document.getElementById("deleteChild01").style.display = "block";
num++;
}else if(num===3){
document.getElementById("childFirst02").style.display = "block";
document.getElementById("childLast02").style.display = "block";
document.getElementById("deleteChild02").style.display = "block";
num++;
}else if(num===4){
alert("Please Contact The Rectory If You Need To Add More Children");
}
}
所有这些都能正常运作
但是,当我单击调用下一个函数的deleteChild00
按钮时,我在Firebug中收到not enough arguments
错误。
function removeChild(){
if(num===2){
document.getElementById("childFirst00").style.display = "none";
document.getElementById("childLast00").style.display = "none";
document.getElementById("deleteChild00").style.display = "none";
num--;
}else if(num===3){
document.getElementById("childFirst01").style.display = "none";
document.getElementById("childLast01").style.display = "none";
document.getElementById("deleteChild01").style.display = "none";
num--;
}else if(num===4){
document.getElementById("childFirst02").style.display = "none";
document.getElementById("childLast02").style.display = "none";
document.getElementById("deleteChild02").style.display = "none";
num--;
}
}
这是调用removeChild()函数的输入HTML。
<input type="button" id="deleteChildButton" value="Remove Child" onClick="removeChild()"/>
在removeChild()函数中导致“参数不足”的原因是什么?
答案 0 :(得分:1)
removeChild()
是一个standard DOMnode moethod,它需要一个参数,应该从一个节点调用,如果你试图以你的方式使用它,不同的浏览器会响应不同的错误。 Firefox返回“不够参数”异常,而Chrome则给出了“未捕获错误:NOT_FOUND_ERR:DOM异常8”。
将您的功能重命名为其他内容:
// Rename...
function removeChild(){
// to...
function someOtherRemoveChild(){
然后在你的标记中调用它。
<input type="button" id="deleteChildButton" value="Remove Child" onClick="someOtherRemoveChild()"/>
或者,由于您在removeChild()
范围内定义了window
,因此您应能够通过window.removeChild()
调用它,但我不能保证会工作,重新定义DOM方法很奇怪,所以我实际上并不推荐这个:
<input type="button" id="deleteChildButton" value="Remove Child" onClick="window.removeChild()"/>
答案 1 :(得分:1)
这是因为您使用的是已定义的函数名称,例如removeChild()或createElement()
避免使用您认为以前可能使用过的已知功能。并尝试将其更改为doSomthing();
等不常见的东西