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

无法通过索引选中div元素,出现Uncaught TypeError错误求助

问题解决:Uncaught TypeError: Cannot read properties of undefined (reading 'style')

错误原因

你代码里的document.getElementsByClassName("img")返回的是包含所有class为img的元素的类数组集合,循环中的变量i就是单个的<div class="img">元素,不是元素集合。你用i[0]去访问它的"第一个元素",但单个DOM元素没有索引访问的能力,所以i[0]是undefined,自然就会抛出无法读取style属性的错误。

修复方案

根据你的需求,分两种情况处理:

情况1:要显示整个class为img的div

直接修改循环里的代码,去掉多余的[0]:

<script>
  var img = document.getElementsByClassName("img");
  for (i of img) {
    i.style.display = "block";
  }
</script>

情况2:要显示div里的第一张图片

如果你的目标是让div里的第一张图片显示出来,需要先获取div内部的img元素,再修改样式:

<script>
  var imgContainers = document.getElementsByClassName("img");
  for (container of imgContainers) {
    // 获取容器内的第一张img元素
    const firstImg = container.getElementsByTagName('img')[0];
    if (firstImg) { // 避免没有img元素时出错
      firstImg.style.display = "block";
    }
  }
</script>

注:原CSS仅隐藏了.img容器,容器内的img默认是block状态,所以如果显示了容器,图片自然会显示。如果你的CSS也隐藏了img,才需要单独修改img的display属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:06:22