2016-03-09 66 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

非常感谢! –