尝试第二次从 div 中删除孩子 ( JavaScript)



我尝试使用 js 第二次删除子元素,但收到错误消息(未捕获的 DOMException:无法在"节点"上执行"removeChild":要删除的节点不是此节点的子节点。 在 切换第三张幻灯片(

div,获取ImgDiv包含一个带有id的img,getImageId,每次按下按钮时我都会尝试删除和替换它。我尝试对事件侦听器中的第二个函数使用 setTimeout 方法,但它仍然给出相同的错误。

var getImageId = document.getElementById("cat");
var obtainImgDiv = document.getElementById("images4slideshow");
function SwitchForSecondSlide(getImageId,obtainImgDiv) {
    obtainImgDiv.removeChild(getImageId);
    var newImg = document.createElement("img");
    newImg.setAttribute("id", "cat");
    newImg.setAttribute("src", "Images/cat2.jpg");
    newImg.setAttribute("class", "cat");
    obtainImgDiv.appendChild(newImg);
}
slideShowButton2.addEventListener("click",  function  () {
    SwitchForSecondSlide(getImageId,obtainImgDiv);
}, false);
function SwitchForThirdSlide(getImageId,obtainImgDiv) {
   obtainImgDiv.removeChild(getImageId);  
}
slideShowButton3.addEventListener("click", function() {
    SwitchForThirdSlide(getImageId,obtainImgDiv);
},false)

新创建的映像var newImg = document.createElement("img");未设置为您的obtainImgDivobtainImgDiv在 starup 期间只执行一次,因此它仍然包含旧子变量,您可以简单地替换全局变量(最简单的更改(

而不是var newImg = document.createElement("img");, you can try获取ImgDiv = document.createElement("img"(; 并将包含newImage变量的其他语句更改为obtainImgDiv

最新更新