如何使用嵌套循环遍历嵌套数组查找codItem并解决相关报错
问题原因
- 层级访问错误:
teste是外层数组,本身没有item属性,item属于teste数组的单个元素属性,直接执行teste.item会返回undefined,触发类型错误。 - for循环语法错误:for循环的初始化、条件、增量三个表达式需要用分号分隔,你代码中
i < len, i++使用逗号分隔,会导致循环逻辑异常。 - 取值逻辑错误:你的测试数组中不存在
id字段,teste[i].id无法取到有效值;teste.codItem直接在外层数组读取深层属性,层级完全错误。 - DOM操作逻辑错误:克隆节点后直接用ID选择器修改内容,会命中页面内所有同ID节点(包括原模板和历史克隆节点),导致内容追加混乱。
修复后代码
如果需要筛选特定codItem的内容,可以在遍历内层item时增加对应判断条件即可。
// 遍历外层teste数组 for (let i = 0; i < teste.length; i++) { const currentGroup = teste[i]; // 取当前外层元素下的item数组 const items = currentGroup.item; // 遍历item数组下的每个元素 for (let j = 0; j < items.length; j++) { const currentItem = items[j]; console.log(currentItem.codItem); // 克隆节点并修改属性 const boxClonado = $("#boxMaster").clone(true); boxClonado.appendTo("#preparando").removeAttr("hidden style").addClass("clonados"); // 仅修改当前克隆节点内的元素,避免影响其他节点 boxClonado.find("#nomeproduto").append(currentItem.codItem); // 可替换为实际数量字段 boxClonado.find("#quantidade").append("Qntd.: 1"); } }
内容的提问来源于stack exchange,提问作者lucas-ngr
相关产品推荐
相关产品推荐

