如何删除以前使用document.createElement创建的元素?

问题描述 投票:-2回答:1

我使用document.createElement()来将图像添加到类中(根据我的程序,如果我使用此方法而不是仅使用标签,则效果最好)。基于下拉选择,我想重新排列图像的顺序。如果我再次简单地使用document.createElement(),那么图像和重叠部分将是原来的两倍,这显然是我所不希望的。

如何做到这一点,在选择下拉菜单后,可以重新排列其他图像,以便删除先前的图像?

var imgGallery=document.getElementsByName("gallery");
var imgDesc = document.getElementsByName("desc");

for(i=0;i<works.length;i++){
      var a = document.createElement('a');
      var img = document.createElement("IMG");
      a.setAttribute('href', linkArray[works[i]-1]);
      img.setAttribute('src', imgArray[works[i]-1]);
      img.setAttribute('width', '300');
      img.setAttribute('height', '225');
      a.appendChild(img);
      var desc = document.createElement("P")
      desc.innerText = descArray[works[i]-1];
      imgGallery[i].appendChild(para);
      imgDesc[i].appendChild(a);
    }

注意:Gallery和Desc是保存图像的类works是具有图像顺序的数组(1-15)linkArray是带有图像链接的数组,imgArray是带有图像的数组,descArray是带有图像描述的数组

基于下拉列表,作品将发生变化(我的代码已停止),因此我希望HTML文件中的图像发生变化。我已经尝试过再次使用document.createElement(),但是我将得到想要的图像数量的两倍(它将添加到已经存在的图像上)。我觉得我需要以某种方式删除旧图像或访问它们并修改其href / src。

编辑:添加了代码和注释

javascript html
1个回答
0
投票

我认为您可以使用removeChild(child name)。它的用法可以是childname.parentNode.removeChild(childname)形式。此处,子名称是您使用document.createElement()属性创建的const或变量。例如,

    const html = document.querySelector('html');

    const box = document.createElement('div');
    box.setAttribute('class', 'msgBox');
    html.appendChild(box);

    closeBtn.onclick = function() {
      box.parentNode.removeChild(box);
    }

而且,我是这个论坛的新手,也是Web开发的新手。所以,如果有任何错误,对不起!

© www.soinside.com 2019 - 2024. All rights reserved.