我使用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。
编辑:添加了代码和注释
我认为您可以使用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开发的新手。所以,如果有任何错误,对不起!