JS removeNode问题FF 4.01

时间:2011-05-23 10:31:52

标签: javascript

有人可以帮我查一下:

function on_message_start () {
    messageDiv = document.getElementById("on_message");

    //add close button
    aClose = document.createElement("a");
    aClose.setAttribute("href", "#");
    aClose.setAttribute("id", "messageClose");
    textClose = document.createTextNode("Close");
    messageDiv.appendChild(aClose);
    aClose.appendChild(textClose);

    //message close action
    aClose.onclick =  function() {
        on_message_close (messageDiv);
        return false;
    };
}

function on_message_close (messageDiv) {
    document.removeChild (messageDiv);
}

对于我的生活,我无法弄清楚为什么 document.removeChild(messageDiv); 不会按预期删除div。

调用

on_message_close,正确传递messageDiv,是文档的直接子节点,它是div。

修改 找到解决方案:

function on_message_close (messageDiv) {
    alert (messageDiv.getAttribute("id"));
    parent = messageDiv.parentNode
    parent.removeChild (messageDiv);
}

我以为在问之前我已经尝过了......

1 个答案:

答案 0 :(得分:1)

removeChild方法仅删除作为元素的直接子元素的DOM对象。

  

如果child实际上不是元素节点的子节点,则该方法会抛出异常。