JavaScript猫咪GIF生成器问题:删除图片后无法再次生成,仅能刷新恢复
猫咪GIF生成器删除后无法重新生成的问题修复
问题根源很直接:你的removeCat()函数直接把承载图片的#flex-cat-gen整个div从DOM里删掉了。之后点击生成按钮时,generateCat()里的document.getElementById('flex-cat-gen')找不到这个元素,自然没法往里面添加新图片。
只需要修改removeCat函数,清空div内部内容而非删除div本身就能解决:
function generateCat(){ var image=document.createElement('img'); var div=document.getElementById('flex-cat-gen'); image.src="https://thecatapi.com/api/images/get?format=src&type=gif&size=small"; div.appendChild(image); } function removeCat(){ // 找到容器div,清空内部所有内容,保留容器本身 var catContainer = document.getElementById('flex-cat-gen'); catContainer.innerHTML = ''; }
如果想更精细地只删除最后一张猫咪图(而非清空所有),可以改成这样:
function removeCat(){ var catContainer = document.getElementById('flex-cat-gen'); // 确认容器有子元素时,删除最后一个 if(catContainer.lastChild){ catContainer.removeChild(catContainer.lastChild); } }
你的HTML部分无需修改,保持原样即可:
<div class="container-2"> <h2>Challenge 2: Cat Generator</h2> <button class="btn btn-success" id="cat-generator" onclick="generateCat()">Generate Cat</button> <div class="flex-box-container-2" id="flex-cat-gen"> </div> <div> <button class="btn btn-danger" id="cat-remover" onclick="removeCat()">Remove Cat</button> </div> </div>
内容的提问来源于stack exchange,提问作者Rod Marcel
相关产品推荐
相关产品推荐

