【问题标题】:Iteration in javascript only returns the first element [duplicate]javascript中的迭代仅返回第一个元素[重复]
【发布时间】:2020-10-05 20:13:54
【问题描述】:

我有以下代码sn-p

$("#personalizacoesOpcionais")
      .find(".qtdPersonalizacao")
      .each(function (n, t) {
         var i = {};
         i.IdProdutoIngrediente = parseInt($(t).attr("data-id"));
         i.Qtde = parseFloat($(t).text());            
         r[n] = i
       });

在 html 中有几个 div personalizacoesOpcionais,每个 div 都有许多元素 qtdPersonalizacao
但是,上面的代码 sn-p 只返回第一个 qtdPersonalizacao 内的第一个 qtdPersonalizacao

【问题讨论】:

  • 我假设那是 jQuery?
  • 这是 jQuery 迭代,不是纯 JS。
  • 如果有多个 id 为personalizacoesOpcionais 的 div,难怪它不会返回多个,因为 id 是唯一的
  • @epascarello 完全正确
  • 什么是r(来自r[n] = i)?

标签: javascript jquery


【解决方案1】:

但是,上面的代码 sn-p 只返回第一个 personalizacoesOpcionais 中的第一项 qtdPersonalizacao。

Id 在文档中应该是唯一的,jQuery 只会返回第一个匹配的元素。

推荐的解决方案是使用类而不是 personalizacoesOpcionais 的 id。

如果这是不可能的,例如,如果您不控制生成标记的代码,解决方法是使用 $("div[id=personalizacoesOpcionais]") 而不是 $("#personalizacoesOpcionais")

【讨论】:

  • 感谢您关注这个细节。由于div放置错误,我遇到了问题。完美运行!
猜你喜欢
  • 2018-05-01
  • 2022-08-12
  • 2015-12-03
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多