Javascript removeChild不是一个函数 window.onload=initPage; var firstname=false; var lastname=false; 函数initPage(){ addEventHandler(document.getElementById(“firstname”),“blur”,verifyFirst); addEventHandler(document.getElementById(“lastname”),“blur”,verifyLast); addEventHandler(document.getElementById(“提交”),“单击”,显示名称); } 函数验证优先(e){ var me=GetActivateObject(e); 如果(me.value==“”){ me.className=“error”; 我。集中精力(); me.select(); 返回; } 否则{ me.className=“”; firstname=true; 启用按钮(); } } 函数验证(e){ var me=GetActivateObject(e); 如果(me.value==“”){ me.className=“error”; 我。集中精力(); me.select(); 返回; } 否则{ me.className=“”; lastname=true; 启用按钮(); } } 函数enabledButton(){ if(firstname&&lastname){ document.getElementById(“提交”).disabled=false; } 否则{ document.getElementById(“提交”).disabled=true; } } 函数showName(){ var first=document.getElementById(“firstname”).value; var last=document.getElementById(“lastname”).value; var word=first.toLowerCase()+last.toLowerCase(); for(变量i=0;i

Javascript removeChild不是一个函数 window.onload=initPage; var firstname=false; var lastname=false; 函数initPage(){ addEventHandler(document.getElementById(“firstname”),“blur”,verifyFirst); addEventHandler(document.getElementById(“lastname”),“blur”,verifyLast); addEventHandler(document.getElementById(“提交”),“单击”,显示名称); } 函数验证优先(e){ var me=GetActivateObject(e); 如果(me.value==“”){ me.className=“error”; 我。集中精力(); me.select(); 返回; } 否则{ me.className=“”; firstname=true; 启用按钮(); } } 函数验证(e){ var me=GetActivateObject(e); 如果(me.value==“”){ me.className=“error”; 我。集中精力(); me.select(); 返回; } 否则{ me.className=“”; lastname=true; 启用按钮(); } } 函数enabledButton(){ if(firstname&&lastname){ document.getElementById(“提交”).disabled=false; } 否则{ document.getElementById(“提交”).disabled=true; } } 函数showName(){ var first=document.getElementById(“firstname”).value; var last=document.getElementById(“lastname”).value; var word=first.toLowerCase()+last.toLowerCase(); for(变量i=0;i,javascript,html,removechild,Javascript,Html,Removechild,这是我目前正在编写的代码。我正在创建一个网站,名字和姓氏有两个输入字段。在验证每个字段后,在模糊每个字段时,将启用“提交”按钮。单击submit按钮时,它将组合名字和姓氏,然后分离每个字母,并调用与输入的每个字母相关的图像,并将其显示在displayname div上 这里是我遇到问题的地方: 我想要的是显示图像,然后删除图像,并使用setInterval再次连续显示。(即,图像拼写的名称将闪烁)。不幸的是,当我尝试使用removeChild函数删除图像时,代码出现以下错误: 更新 未捕获的Ty

这是我目前正在编写的代码。我正在创建一个网站,名字和姓氏有两个输入字段。在验证每个字段后,在模糊每个字段时,将启用“提交”按钮。单击submit按钮时,它将组合名字和姓氏,然后分离每个字母,并调用与输入的每个字母相关的图像,并将其显示在displayname div上

这里是我遇到问题的地方:

我想要的是显示图像,然后删除图像,并使用setInterval再次连续显示。(即,图像拼写的名称将闪烁)。不幸的是,当我尝试使用removeChild函数删除图像时,代码出现以下错误:

更新

未捕获的TypeError:未能在“节点”上执行“removeChild”:参数1不是“节点”类型

下面是带有错误的检查工具和获得错误的线的图像


当我要求它使用removeChild(display[I])删除图像时,为什么会出现此错误?

更改第68行的代码

window.onload = initPage;
var firstname = false;
var lastname = false;

function initPage() {
    addEventHandler(document.getElementById("firstname"), "blur", verifyFirst);
    addEventHandler(document.getElementById("lastname"), "blur", verifyLast);
    addEventHandler(document.getElementById("submit"), "click", showName);
}

function verifyFirst(e) {
    var me = getActivatedObject(e);
    if (me.value === "") {
        me.className = "error";
        me.focus();
        me.select();
        return;
    }
    else {
        me.className = "";
        firstname = true;
        enabledButton();
    }
}

function verifyLast(e) {
    var me = getActivatedObject(e);
    if (me.value === "") {
        me.className = "error";
        me.focus();
        me.select();
        return;
    }
    else {
        me.className = "";
        lastname = true;
        enabledButton();
    }
}

function enabledButton() {
    if (firstname && lastname) {
        document.getElementById("submit").disabled = false;
    }
    else {
        document.getElementById("submit").disabled = true;
    }
}

function showName() {
    var first = document.getElementById("firstname").value;
    var last = document.getElementById("lastname").value;
    var word = first.toLowerCase() + last.toLowerCase();
    for (var i = 0; i < word.length; i++) {
        var letter = word.charAt(i);
        var img = document.createElement("img");
        img.setAttribute("src", "images/" + letter + ".png");
        img.setAttribute("style", "left:" + 50 * i);
        document.getElementById("displayname").appendChild(img);
    }
    var t = setInterval(removeName, 2000);
}

function removeName() {
    var display = document.getElementById("displayname").getElementsByTagName("img");
    var lengthOfDisplay = display.length;
    for (var i = 0; i < lengthOfDisplay; i++) {
        document.getElementById("displayname").removeChild(display[i]);
    }
    var t = setInterval(showName, 2000);
}
对此

document.getElementById("displayname".removeChild(display[i]));

更改此字段第68行的代码

window.onload = initPage;
var firstname = false;
var lastname = false;

function initPage() {
    addEventHandler(document.getElementById("firstname"), "blur", verifyFirst);
    addEventHandler(document.getElementById("lastname"), "blur", verifyLast);
    addEventHandler(document.getElementById("submit"), "click", showName);
}

function verifyFirst(e) {
    var me = getActivatedObject(e);
    if (me.value === "") {
        me.className = "error";
        me.focus();
        me.select();
        return;
    }
    else {
        me.className = "";
        firstname = true;
        enabledButton();
    }
}

function verifyLast(e) {
    var me = getActivatedObject(e);
    if (me.value === "") {
        me.className = "error";
        me.focus();
        me.select();
        return;
    }
    else {
        me.className = "";
        lastname = true;
        enabledButton();
    }
}

function enabledButton() {
    if (firstname && lastname) {
        document.getElementById("submit").disabled = false;
    }
    else {
        document.getElementById("submit").disabled = true;
    }
}

function showName() {
    var first = document.getElementById("firstname").value;
    var last = document.getElementById("lastname").value;
    var word = first.toLowerCase() + last.toLowerCase();
    for (var i = 0; i < word.length; i++) {
        var letter = word.charAt(i);
        var img = document.createElement("img");
        img.setAttribute("src", "images/" + letter + ".png");
        img.setAttribute("style", "left:" + 50 * i);
        document.getElementById("displayname").appendChild(img);
    }
    var t = setInterval(removeName, 2000);
}

function removeName() {
    var display = document.getElementById("displayname").getElementsByTagName("img");
    var lengthOfDisplay = display.length;
    for (var i = 0; i < lengthOfDisplay; i++) {
        document.getElementById("displayname").removeChild(display[i]);
    }
    var t = setInterval(showName, 2000);
}
对此

document.getElementById("displayname".removeChild(display[i]));
将第68行替换为

document.getElementById("displayname").removeChild(display[i]);
将第68行替换为

document.getElementById("displayname").removeChild(display[i]);
removeChild()
是一种适用于节点的方法(而不是您在代码中使用的字符串或选择器)

document.getElementById(“displayname”).removeChild(display[i])
应该是适当的语法。

removeChild()是一种适用于节点的方法(而不是代码中使用的字符串或选择器)


document.getElementById(“displayname”).removeChild(display[i])
应该是适当的语法。

片段
getElementById(“displayname”)中缺少
。片段
getElementById(“displayname”)中删除child
缺少
.removeChild
更新为新错误。抱歉。我在写这篇文章时试图修复代码,我想我犯了一个小语法错误。这是我一直坚持的实际错误。更新为新错误。抱歉。我在写这篇文章时试图修复代码,我想我犯了一个小语法错误。这是t我遇到的实际错误,我一直被困在上面。在那个小语法错误之后更新为新错误。对此很抱歉。这是我正在查找的实际错误。在修复它时,我猜我犯了一个错误,并得到了一个语法错误。在那个小语法错误之后更新为新错误。对此表示抱歉。这是我遇到的实际错误正在查看。在修复时,我想我犯了一个错误,出现了一个语法错误。看起来这修复了我的代码。如此简单的更正,但我无法理解。我想我太喜欢节点了,以至于我忘记了这个简单的代码。谢谢。现在我只需修复代码的setInterval部分,以使其超时,这样它就会很好ly,并且不会偶尔显示两次名称。这将删除
#displayname
中的所有内容,而OP的代码仅删除
img
节点。如果OP确实要删除所有内容,则也不需要第67行上的
for
循环。看起来这修复了我的代码。如此简单的更正我还无法完成算算吧。我想我太喜欢节点了,以至于忘记了这个简单的代码。谢谢。现在我只需要修复代码的setInterval部分,使其超时,这样它就可以很好地超时,并且不会偶尔显示两次名称。这将删除
\displayname
中的所有内容,而OP的代码只删除
img
节点。如果OP确实想要删除所有内容,那么第67行也不需要
for
循环。