javascript - 如何使用对象数组的内部嵌套中获得的groupid来包装组

标签 javascript jquery node.js

我想wrapspangroupid进入对象数组

预期输出:

<div id="wrapper">
   <span class="group-wrapper" data-groupid="3333333333333333">
      <p>Name : ABC</p>
      <p>Name : AABBCC</p>
   </span>
   <span class="group-wrapper" data-groupid="5555555555555555">
      <p>Name : DEF</p>
   </span>
   <span class="group-wrapper" data-groupid="7777777777777777">
      <p>Name : GHI</p>
   </span>
</div>

注意:观察data-groupid具有值(value),但在我的代码中我无法获取它。 (我不需要 data-groupid 的任何随机值,我想要精确的值)

注意2:我无法更改json 结构,因为它被我的许多应用程序使用(我无法控制)

我的代码生成:

<div id="wrapper">
   <span class="group-wrapper" data-groupid="">
      <p>Name : ABC</p>
   </span>
   <span class="group-wrapper" data-groupid="">
      <p>Name : DEF</p>
   </span>
   <span class="group-wrapper" data-groupid="">
      <p>Name : GHI</p>
   </span>
</div>

这是演示:

var array = [
   {"list":[{"id":"3333333333333333","name":"ABC"},{"id":"3333333333333333","name":"AABBCC"}]},
   {"list":[{"id":"5555555555555555","name":"DEF"}]},
   {"list":[{"id":"7777777777777777","name":"GHI"}]},
];

var fullHtmlStr = '', groupStr = '';
for(var i = 0; i < array.length; i++){
   var tempGroupWrapper = '<span class="group-wrapper" data-groupid="">';
   var list = array[i].list;
   for(j = 0; j < list.length; j++){
      var item = list[j];
      console.log(item);
      fullHtmlStr = '<p>Name : '+item.name+'</p>';
      tempGroupWrapper += fullHtmlStr;
   }
   tempGroupWrapper += '</span>';
   groupStr += tempGroupWrapper;
}

console.log(groupStr);

$('#wrapper').html(groupStr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="wrapper">

</div>

最佳答案

像这样吗? 我将 tempGroupWrapper 移至循环中,并将 item.id 放入 groupid 内。

var array = [
   {"list":[{"id":"3333333333333333","name":"ABC"},{"id":"3333333333333333","name":"AABBCC"}]},
   {"list":[{"id":"5555555555555555","name":"DEF"}]},
   {"list":[{"id":"7777777777777777","name":"GHI"}]},
];

var groupStr = '';
for(var i = 0; i < array.length; i++){
   var fullHtmlStr = '';
   var list = array[i].list;
   for(var j = 0; j < list.length; j++){
      var item = list[j];
      console.log(item);
      fullHtmlStr += '<p>Name : '+item.name+'</p>';
   }
   var tempGroupWrapper = '<span class="group-wrapper" data-groupid="' + item.id + '">';
   tempGroupWrapper += fullHtmlStr + '</span>';
   groupStr += tempGroupWrapper;
}

console.log(groupStr);

$('#wrapper').html(groupStr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="wrapper">

</div>

关于javascript - 如何使用对象数组的内部嵌套中获得的groupid来包装组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53919805/

相关文章:

javascript - MongoDB Node.js 通过 _id 的 deleteOne 不适用于 ObjectId

javascript - PHP MySQL : count views per month for jQuery charts

javascript - 表格的一列需要保持在一行中(HTML/CSS/Javascript)

javascript - 在单元测试中,如何测试具有对象参数的函数?

javascript - 尝试使用jquery创建具有多个错误答案的文本输入

javascript - 等待 ajax 响应来填充对象

javascript - 水平滚动功能的滚动动画

javascript - 在列表之间绘制箭头

Node.js 使用 HTTP GET 实现 open.epic 单点登录?

node.js - 实时编辑失败并显示 "CLOUD_CONTROLLER_URL is not set in the env"