javascript - removeChild 不是函数

标签 javascript html removechild

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);
}

这是我目前正在处理的代码。我正在创建一个网站,其中包含名字和姓氏的两个输入字段。在验证每个字段后,他们将启用提交按钮。单击提交按钮时,它将组合名字和姓氏,然后将每个字母分开并调用与输入的每个字母相关的图像并将其显示在显示名称 div 上。

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

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

更新

Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'.

下面是带有错误的检查工具的图片以及出现错误的行。

error image

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

最佳答案

将第 68 行替换为

document.getElementById("displayname").innerHTML = '';

关于javascript - removeChild 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40968949/

相关文章:

javascript - 无法使用 removeChild 删除动态添加的 <select>

javascript - Chrome 扩展 - 执行脚本未注入(inject)新选项卡

javascript - 仅在内容更新时自动刷新网页

javascript - Protractor 中失败 : unknown error: browser is not defined after browser.executeScript()

html - 即使在缩放后也能保持网页上的图像布局?

JavaScript removeChild 帮助

javascript - vue.js 在过渡后删除元素

JavaScript 在外部注册事件处理程序

php - 媒体查询不工作 Wordpress 主题

html - 在 css 中有两个左对齐列的最佳方法是什么,其中第一个是固定的?