You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击按钮逐次隐藏div内多张相同图片的功能实现问题

你当前代码的问题是直接修改了父容器#output的visibility属性,父元素设为隐藏后,其包含的所有子图片都会同步隐藏,所以才会出现点击一次所有图片全部消失的情况。另外你给按钮同时写了JS绑定点击事件和HTML内联onclick="onClick1()",但你没有定义onClick1函数,运行时会控制台报错,建议删掉冗余的内联点击属性。

实现方案

我们只需要维护一个计数器,每次点击后按顺序选中当前要隐藏的图片,单独修改它的可见性即可:

修改后HTML代码

<input id="btn1" type="button" value="Click me" style="height: 100px; width: 100px;">
<div style="margin-top: 40px;"></div>
<div id="output">
  <img src="/images/person1.jpg">
  <img src="/images/person1.jpg">
  <img src="/images/person1.jpg">
  <img src="/images/person1.jpg">
  <img src="/images/person1.jpg">
</div>

修改后JS代码

// 初始化计数器,记录下次要隐藏的图片下标
let hideIndex = 0;
document.getElementById("btn1").onclick = function() {
  const imgList = document.querySelectorAll("#output img");
  // 还有未隐藏的图片时才执行操作
  if (hideIndex < imgList.length) {
    imgList[hideIndex].style.visibility = "hidden";
    hideIndex++;
  }
  // 若需要全部隐藏后点击重置显示,可放开下面注释的代码
  // else {
  //   imgList.forEach(img => img.style.visibility = "visible");
  //   hideIndex = 0;
  // }
}

补充说明:如果希望隐藏图片后原有位置也消失、不留空白,把visibility: "hidden"替换为display: "none"即可

内容的提问来源于stack exchange,提问作者dino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:06:05