2016-03-09 64 views
-1

使用JavaScript,我添加兩個按鈕,一個會添加一個圖片,另一個會刪除一張圖片。我只是在練習...JavaScript如何刪除一個孩子

按鈕和功能添加圖片工作很好,我正在用刪除圖片的功能掙扎。如果我將兩個按鈕和圖片添加到網站,併爲圖片添加一個ID,並通過ID刪除該圖片。但是,如果我只有兩個按鈕,並嘗試開始添加圖片,那麼我就沒有ID,所以我迷路了!

下面的deleteMe函數可以很好地刪除第一張圖片。但我不想在加載網站時有任何圖片,我只想要添加和刪除兩個按鈕。所以我不知道如何去除元素。以下是我迄今爲止的兩個功能,感謝!!!:

function deleteMe(){ 
    var toDelete = document.getElementById('image23'); 
    toDelete.parentNode.removeChild(toDelete); 
} 

function addMe(){ 

    var img = document.createElement('IMG'); 
    img.setAttribute("src", "elephant.jpg"); 
    img.setAttribute("width", "60"); 
    img.setAttribute("height", "60"); 
    document.body.appendChild(img); 

} 
+0

你在哪裏得到 'image23'?我沒有看到你在addMe中給出該ID –

+0

您可以嘗試使用document.getElementsByTagName(「IMG」)[0]來查找圖像,然後不必設置ID。 – sakurashinken

+0

就是這樣,如果我先添加一個圖像,那麼我可以這樣做:image of elephant

回答

0
document.body.removeChild(toDelete); 
0

我想你忘了給你創建一個ID的圖像。

您正在使用:

var toDelete = document.getElementById('image23'); 

爲了讓你刪除的圖像,但你永遠不分配一個ID的形象。要添加ID,當你讓你的圖像,使用:

img.setAttribute("id", "image23"); 

img.id = 'image23' 

編輯

如果允許添加多張圖片,並只希望刪除一個一次,我認爲sakurashinken的方法評論可能是更理想的,但不是抓住:

document.getElementsByTagName("IMG")[0] 

你應該使用一個班級,因爲你的網頁上有其他圖像。

這將使你的新ADDME:

... 
img.setAttribute("src", "elephant.jpg"); 
img.className = 'deletebybutton'; 
img.setAttribute("width", "60"); 
... 

而且新DELETEME:

var toDelete = document.getElementsByClassName("deletebybutton")[0]; 
toDelete.parentNode.removeChild(toDelete); 
+0

非常感謝! –