2016-11-08 70 views
0

我爲我正在使用的文件的html目錄創建了一個.js文件。 .js文件的目的是刪除元素標識符。所以在我的.js文件中,我目前有腳本在多個html頁面上執行的單個.js文件

var element=document.getElementById("id1"); 
element.parentElement.removeChild(element); 

它工作得很好,做我需要做的事情。現在,如果我是包括其他腳本刪除不同的HTML頁面

var element = document.getElementById("id1"); 
element.parentElement.removeChild(element); 

var elem = document.getElementById("id2"); 
elem.parentElement.removeChild(elem); 

只有執行的第一個腳本的id元素,第二個是不是除了我收到消息「未捕獲的類型錯誤:無法讀取'parentElement'of null。我認爲每個html頁面都會讀取.js文件並匹配它所指的對應元素並進行更改。

+2

http://stackoverflow.com/q/14028959/669576 –

+0

你是什麼意思的「不同的HTML頁面」? – guest271314

+0

A.html和B.html不同html頁面的例子 – NickJ

回答

0

Uncaught type error: cannot read 'parentElement' of null意味着它無法找到具有給定id的元素因此你不能嘗試找到它的父元素如果你想使這個更通用,你可以嘗試將它抽象爲一個函數

function removeElementById(elId) { 
    var el = document.getElementById(elId); 
    if (el) { 
     el.parentNode.removeChild(el); 
    } 
} 

現在,無論何時您嘗試刪除元素,都會在嘗試將元素從其父元素中刪除之前首先檢查它是否「僞造」。

0

這就像錯誤說,一個不存在的元素的parentElement爲null,null沒有方法'removeChild'所以你必須檢查元素是否存在。

var element=document.getElementById("id1"); 
if(element) { 
    element.parentElement.removeChild(element); 
} 
0

當srcipt運行時,您嘗試查找的元素(id2)可能不在DOM中。在訪問其方法之前,您需要檢查它是否爲空。

相關問題