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

jQuery遍历div时出现Cannot read properties of undefined报错如何解决

错误原因

  • 核心错误是对jQuery each 方法的回调参数理解有误:each(function(index, element)) 里的element本身就是当前遍历到的单个DOM元素,不需要再加索引[a]取值,你额外加[a]会读取不存在的属性,得到undefined,自然无法调用attr或者indexOf方法。
  • 第二个错误是DOM元素和jQuery对象的方法混用:原生DOM元素没有attr方法,只有jQuery封装的对象才有,原生DOM要拿属性用getAttribute,或者把DOM元素用$()包裹成jQuery对象再调用attr。
  • 你修改后的写法$(element)[a].attr('title')问题更大:$(element)是单元素jQuery对象,[a]会把它转回原生DOM元素(同时因为索引错误大概率返回undefined),原生DOM元素没有attr方法,进一步触发错误。

修正后的代码

var field = $("#area_en" + cardArray[myId]['type']).find("div");

field.each(function(a, element) {
  // 两种写法二选一
  // 写法1:把DOM转成jQuery对象调用attr
  const title = $(element).attr('title');
  // 写法2:原生DOM直接拿属性,不需要转jQuery
  // const title = element.getAttribute('title');
  console.log("cC type:" + cardArray[myId]['type'] + "- index:" + a + " title: " + title);

  // 先判断title存在再调用indexOf,避免没有title属性的元素报错
  if (title && title.indexOf("player") < 0) { 
    doStuff();
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:15:07