删除前一个子元素后,parentNode变为null

时间:2014-07-15 15:54:55

标签: javascript

所以,我试图让一个按钮在页面中添加另一个下拉列表(我的代码中的DD),它只是花花公子,除非我尝试删除(“工作”)剩下的节点不再有parentNode设置正确。

这是我的代码:

function insertAfter(newNode, elem) {
    elem.parentNode.insertBefore(newNode, elem.nextSibling);
}


function addSwitchMenu() {
    var lastDD = dropdowns.switches.last();
    var newDD = lastDD.cloneNode();
    newDD.innerHTML = lastDD.innerHTML;
    var oldButton = document.getElementById("add-switch");
    var newButton = oldButton.cloneNode();
    var newBR = document.createElement("br");
    oldButton.value = '-';
    oldButton.id = 'remove-switch';
    oldButton.onclick = function() {
        var index = dropdowns.switches.indexOf(newDD);
        dropdowns.switches.splice(index,1);
        lastDD.parentNode.removeChild(lastDD);
        oldButton.parentNode.removeChild(oldButton);
        newBR.parentNode.removeChild(newBR);
        updateResults();
    }
    dropdowns.switches.push(newDD);
    console.log(newDD);
    console.log(lastDD.parentNode);
    insertAfter(newDD, lastDD);
    insertAfter(newButton, lastDD);
    insertAfter(newBR, lastDD);
}

基本上我调用了这个函数,然后我调用了第一个函数的remove函数,然后我再次使用第一个创建的节点调用了这个函数。我猜测它与被删除的引用节点有关,但新节点有一个parentNode,直到另一个节点被删除。为什么?我该如何解决这个问题?

0 个答案:

没有答案