单个.js文件在多个html页面上执行

时间:2016-11-08 21:06:43

标签: javascript

我为我正在使用的文件的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文件并匹配它所引用的相应元素并进行更改。

3 个答案:

答案 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。