无法删除Javascript中的div
我试图删除Javascript中的一个div,但它不起作用。我的控制台中没有错误,但函数确实被调用了 我不明白我做错了什么,所以我希望有人能解释一下。这就是它的工作原理:无法删除Javascript中的div,javascript,Javascript,我试图删除Javascript中的一个div,但它不起作用。我的控制台中没有错误,但函数确实被调用了 我不明白我做错了什么,所以我希望有人能解释一下。这就是它的工作原理: function menu_load(type){ document.getElementById(type).onclick = function(){ menu_unload(type); } var width = 100; var height = 100; var d = document.creat
function menu_load(type){
document.getElementById(type).onclick = function(){ menu_unload(type); }
var width = 100;
var height = 100;
var d = document.createElement('div');
d.id = 'menu';
d.className = 'menu';
d.style.width = width + 'px';
d.style.height = height + 'px';
document.getElementById('G').appendChild(d);
}
function menu_unload(type){
alert('test'); //this displays
var div = document.getElementById("menu");
div.parentNode.removeChild(div); // doesn't remove the div
document.getElementById(type).onclick = menu_load(type);
}
window.onload = function(){
menu_load('test');
}
这里有我遗漏的错误吗?我就是解不出这个问题。如果我更正以下行,您的代码对我有效:
document.getElementById(type).onclick = menu_load(type);
它错误地调用菜单\u load()
,并尝试将结果分配给。onclick
。这应该和你在其他函数中做的一样
document.getElementById(type).onclick = function() { menu_load(type); };
演示:
老实说,我不知道为什么要修复它,因为您的代码实际上不是语法错误,而是因为它调用了
menu\u load()
它重新创建了刚刚删除的div。而.removeChild()
行应该首先出现,但无论如何…您说“函数”确实会被调用。你是说menu\u unload
还是仅仅menu\u load
?两者都是,当我附加时,它加载div,我的警报显示为menu\u unload
,用onclick
将你的alert
调用放在menu\u unload
的末尾,看看它是否仍然被调用。我创建了一个带有较小测试用例的JSidle,而且它是有效的。。。也许会有帮助。您肯定应该使用jQuery。它真的很棒,做所有的事情+1,但是@“我不知道为什么会修复它”,这是因为调用菜单\u load
会创建一个新的
,它完全相同,所以你无法用肉眼区分。啊,谢谢@PaulS。-即使我说“[这个]调用菜单\u load()
”,我也没有想清楚。我会更新我的答案。@PaulS.-谢谢你,伙计,你搞定了。你应该把它作为一个答案。啊,它是这么做的,但马上又重新创造了它?@Igor尽管我很喜欢这个名声,但我认为没有必要再提出一个新的答案,因为这个答案充分涵盖了解决方案。