所以,我试图让一个按钮在页面中添加另一个下拉列表(我的代码中的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,直到另一个节点被删除。为什么?我该如何解决这个问题?