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

HTML中点击按钮增减图片大小仅首图生效的解决方法

问题产生原因
  • HTML标准明确规定,同一个页面内的id属性值必须全局唯一,不允许多个元素重复使用相同id。你给三张图片都设置了id="image",执行document.getElementById("image")时,DOM API只会返回匹配到的第一个元素,因此只有第一张图片的尺寸会被修改。
  • 补充个小规范问题:<img>是自闭合标签,不需要额外写</img>做闭合,原有写法属于不规范HTML,虽然大部分浏览器能容错,但建议修正。
正确修改方式
  1. 首先调整HTML结构,把重复的id替换为可复用的类名,修正img标签的不规范写法:
<p><img class="adjustable-img" src="001.jpg" height="1000"></p> 
<p><img class="adjustable-img" src="002.jpg" height="1000"></p> 
<p><img class="adjustable-img" src="003.jpg" height="1000"></p> 

<button onclick="plus()">+</button>
<button onclick="minus()">-</button>
  1. 修改JS逻辑,获取所有目标图片后遍历调整尺寸:
function plus() {
  const allImgs = document.querySelectorAll('.adjustable-img');
  allImgs.forEach(img => {
    img.height += 50;
  })
}

function minus() {
  const allImgs = document.querySelectorAll('.adjustable-img');
  allImgs.forEach(img => {
    img.height -= 50;
  })
}

如果你需要兼容IE11及更老旧的浏览器,可以把获取到的NodeList先转成数组再遍历,写法为Array.from(allImgs).forEach(...)即可,现代浏览器无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:27:22