我为我正在使用的文件的html目录创建了一个.js文件。 .js文件的目的是删除元素ID。所以在我的.js文件中,我目前有脚本
var element=document.getElementById("id1");
element.parentElement.removeChild(element);
完美无缺,完成了我需要做的事情。现在,如果我要包含一个额外的脚本来删除不同的html页面的id元素
var element = document.getElementById("id1");
element.parentElement.removeChild(element);
var elem = document.getElementById("id2");
elem.parentElement.removeChild(elem);
只执行第一个脚本而第二个脚本没有另外收到消息"未捕获类型错误:无法读取' parentElement'为null。我认为每个html页面都会读取.js文件并匹配它所引用的相应元素并进行更改。
答案 0 :(得分:0)
Uncaught type error: cannot read 'parentElement' of null
表示找不到具有给定id的元素,因此您无法尝试查找其父元素。如果你想让它更通用,你可以尝试将它抽象为函数
function removeElementById(elId) {
var el = document.getElementById(elId);
if (el) {
el.parentNode.removeChild(el);
}
}
现在每当你尝试删除一个元素时,它首先会检查它是不是" falsy"在尝试从父项中删除元素之前。
答案 1 :(得分:0)
就像错误所说的那样,非现有元素的parentElement为null,而null没有方法'removeChild'所以你必须检查元素是否存在。
var element=document.getElementById("id1");
if(element) {
element.parentElement.removeChild(element);
}
答案 2 :(得分:0)
当srcipt运行时,您尝试查找的元素(id2)可能不在DOM中。在访问其方法之前,您需要检查它是否为null。