javascript - 问题 removeChild of many elements

标签 javascript html css css-animations

我有一个函数,它使用 animate 类(使用 css3 动画)创建 div,然后在 webKitAnimationEnd 触发时删除它。当我有多个 div 时,问题就来了:该函数只删除第一个,但与其他 div 一起失败,导致 Uncaught TypeError: Cannot call method 'removeChild' of null

function msg(x) {
    cnt = document.getElementsByClassName("animate").length;
    div = document.createElement("div");
    div.textContent = x;
    div.className = "animate";
    div.style.bottom = (cnt) * 30 + "px";
    document.getElementById("wrapper").appendChild(div);
    div.addEventListener("webkitAnimationEnd", function () {
        div.parentNode.removeChild(div);
    });
}

这是一个 jsfiddle,我的代码重现了这个问题:http://jsfiddle.net/p5HR3/3/

我怀疑函数在有很多 div 时不知道要删除哪个 div。我能做什么?提前致谢。

最佳答案

将事件处理程序代码更改为:

this.parentNode.removeChild(this);

在那种情况下this将指向正确的 div,它触发了一个事件。

附注:onClick="for(i=0;i<10;i++){msg('message n.'+i);}" - 这不好。不要使用内联 Javascript。

关于javascript - 问题 removeChild of many elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21289432/

相关文章:

javascript - 当 page.html 位于另一个文件夹中时,幻灯片菜单停止工作

javascript 如果状态函数不读取 bool 值

javascript - 如何从另一个 div 中找到某个最近的嵌套 <select>

asp.net - 如何使用asp.net mvc转到下拉选择的其他页面

javascript - 悬停时如何使图像按钮突出而不影响其他按钮位置

CSS3 关键帧在 safari 中中断

javascript - 自动测试网站的 IE7 javascript 错误?

javascript - socket.io 发出 404 请求

css - 复选框 hack - 通过位置 : absolute? 将复选框隐藏在屏幕外是否有缺点

html - 为什么我的图片不留在我的容器中?