【发布时间】:2022-01-01 09:21:04
【问题描述】:
我正在选择 area_enInfantry 的所有子 div 并循环调整某些子 div 的文本。 cardArray 是一个全局常量,myId 在父函数中定义。
未捕获的类型错误:无法读取未定义的属性(正在读取“getAttribute”)
var field = $("#area_en" + cardArray[myId]['type']).find("div");
field.each(function(a, element) {
console.log("cC type:" + cardArray[myId]['type'] + "- index:" + a + " title: " + element[a].attr('title'));
if (element[a].attr("title").indexOf("player") < 0) { // check this card isn't special player card
doStuff;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="area_enInfantry">
<div id="info_enInfantryScore" class="info_Score">-1</div>
<div class="encardContainer" title="barricade">-1</div>
<div class="encardContainer" title="spy">2</div>
</div>
我读到on this post 可能是因为字段/元素的内容可能是 DOM 元素,我应该将它们包装在 $() 中,所以我确实这样做了 - 将两个变量都更改为 $(element)[a] .attr('标题') 但现在我得到了 Uncaught TypeError: Cannot read properties of undefined (reading 'indexOf') ,似乎将错误移至下一行。
我在这里做错了什么?
【问题讨论】:
-
问题看起来你的 .each 中的第一个元素是 info_enInfantryScore
标签: javascript jquery each attr