我遇到了一个问题,我无法删除在我的扩展程序中动态创建的菜单。我可以使用document.getElementById
获取菜单对象,或者使用我在下面的jquery内容。基本上,用户点击“删除”菜单项,它应该删除父菜单(有2个父母,因为它进入菜单>弹出> menuitem(点击))。
警报会针对我要删除的内容吐出正确的id
。 removeObj.remove();
崩溃扩展程序。最后一行似乎没有做任何事情(除非第二次点击删除它不再能找到id
),但它仍然在UI中可见。
代码:
var jObj = $(menuObject);
var removeObj = $(jObj).parent().parent();
var id = removeObj.attr('id');
alert(id);
//removeObj.remove();
$(removeObj).parent().removeChild(document.getElementById(id));
这不是因为jquery。我写了这个,它在执行后完全禁用右键菜单(但在if-case中返回正确的id位置)
var mainMenu = document.getElementById('rclickMenu_MenuPopupContainer');
var toRemove = document.getElementById("rclickMenu_"+main);
for(var i=0; i < mainMenu.children.length; i++){
if(mainMenu.children[i].getAttribute('id') == toRemove.getAttribute('id')){
alert(toRemove.getAttribute('id'));
//mainMenu.removeItemAt(i);
mainMenu.removeChild(toRemove);
}
}
答案 0 :(得分:0)
执行:
let (ele = document.getElementById(id)) {
ele.parentNode.removeChild(ele);
}