2013-01-11 89 views
0

我想在單擊具有相同類「框」的按鈕時刪除所有元素。我查閱了幾個例子,人們這樣做,但我仍然無法弄清楚如何爲我的代碼做到這一點。如何使用類刪除元素

我有這個功能,當點擊一個按鈕時,它會在DOM中添加一個框。

function addBox(newbox) {         
    var scene = document.getElementById("scene"); //where all new divs will go   
    var div = document.createElement("div");     
    div.className += " " + "box";   // assigns the class "box" to all divs 
    div.innerHTML += newbox.name; 
    div.style.backgroundColor = newbox.color;        
    scene.appendChild(div);          
    } 

這是我正在努力嘗試清除所有新的div的功能,當一個不同的按鈕被點擊。

function clear() { 
    var elems = document.getElementsByClassName("box"); 
    for (k = elems.length - 1; k >= 0; k--) { 
    parentElement.removeChild(elems[k]); 
    } 
    } 

我在控制檯中得到的警告是「parentElement未定義」。我一直想弄清楚如何定義父元素,但我遇到了麻煩。任何幫助表示讚賞。感謝

+1

parentElement **尚未由您定義**。如果你在'removeChild'行上面的for循環中放入'var parentElement = elems [k] .parentNode;',它將會很好地工作。 –

回答

4

你可以抓住從元素的parentNode財產父:

function clear() { 
    var elems = document.getElementsByClassName("box"); 
    for (var k = elems.length - 1; k >= 0; k--) { 
     var parent = elems[k].parentNode; 
     parent.removeChild(elems[k]); 
    } 
} 
+0

謝謝!那工作 – user1876829