2012-07-11 77 views
3

我想刪除一個隱藏的元素。我已經嘗試了下面的代碼,但它總是以未定義的方式返回父代。javascript removechild

嘗試一個

var timeLeft = document.getElementById("time"); 
timeLeft.document.removeChild(timeLeft); 

嘗試2

var timeLeftBody, timeLeft; 
timeLeftBody = document.getElementsByTagName("body")[0]; 
timeLeft = document.getElementById("time"); 
timeLeft.timeLeftBody.removeChild(timeLeft); 
+0

可否請你展示的標記? – kojiro 2012-07-11 00:36:52

+0

在這兩個代碼片段中,最後一行都以'timeleft.'開始,原因不明。這是一個抄寫錯誤還是它真的是你正在做的一部分,如果是的話,爲什麼?另外,我同意'kojiro';您應該向我們展示您的文檔實際包含的內容。 – 2012-07-11 00:40:44

回答

11

removeChild()只能直接包含子元素上 - document.removeChild(hdr)不會工作,除非直接在文檔中包含time元素(這是不可能的,除非timehtml節點)。

嘗試:

var timeLeft = document.getElementById("time"); 
timeLeft.parentNode.removeChild(timeLeft); 
+0

完美地工作! – 2012-07-11 00:52:13

0

改變這一點:

timeLeft.timeLeftBody.removeChild(timeLeft); 

...這樣的:

timeLeftBody.removeChild(timeLeft); 

基本上,你是不擇手段地把事情聯繫在一起的。要遵循這個基本格式:

var parent = document.getElementById('idOfParentNode'); 
var child = document.getElementById('idOfNodeToRemoveFromParent'); 
parent.removeChild(child);