javascript - 从嵌套数据源创建表格单元格

标签 javascript jquery

我正在创建一个动态表格行。我的数据源看起来像这样

 data = [
  {
    "id": 11,
    "tests": [{
        "id": 2,
        "name": "Glucose Level"
      },
      {
        "id": 4,
        "name": "Blood Oxygen"
      }
    ],
    "carepathway": {
      "id": 16,
      "name": "General Check-Up",
      "slug": "general_check_up",
      "dynamic_field": null
    }
  }
]

这就是我创建表格的方式。

$.each(data, function(key, val) {
  var tr = $("<tr />");


  tr.append($('<td>').append("<p>" + val.carepathway.name + "</p>"))
    .append(
      $('<td>').append(

        $.each(val.tests, function(k, v) {
          var $test_controls = $("<div/>", {
            "class": "controls"
          })
          $test_controls.append(
            $("<label>", {
              "class": "checkbox",
              "name": v.name,
              "text": v.name,
              'id': v.id
            }).append(
              $("<input>", {
                "type": "checkbox",
                "value": v.name,
                'id': v.id

              })
            )
          )
        })
      ))

  $("#patient_care_pathway_table tbody").append(tr);

});

第一个<td>值很好,但第二个没有任何结果 <td>我在这里做错了什么?

第二 <td>应该包含带有标签的复选框,像这样

enter image description here

JSFIDDLE

最佳答案

问题是您将 $.each 的返回值(未定义)附加到第二个 td。使用 $.map 而不是 $.each:

tr.append($('<td>').append("<p>" + val.carepathway.name + "</p>"))
.append(
  $('<td>').append(
    $.map(val.tests, function(k, v) {              // use map here instead of each
      var $test_controls = ...;
      ...
      return $test_controls;                       // don't forget to return the element (read about map)
    })
  ))

关于javascript - 从嵌套数据源创建表格单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50767067/

相关文章:

javascript - MockJax 未在 JavaScript 应用程序中发送对我的 AJAX 请求的响应

javascript - PHP 中的 JQuery 已检查

javascript - 如何在我的 DataTable 上方添加额外的输入?

c# - ASP.NET C# : Call serverside function together with Jquery BlockUI

javascript - 使用 javascript/Jquery 获取 HTML5 文件详细信息?

javascript - 如果 div 边距设置为自动,如何获得以像素为单位的 div 左右边距?

javascript - 我如何模拟 AngularJS 单元测试中 promise 的结果?

jquery - 如何解决/破解 IE8 中半透明 PNG 褪色问题?

javascript - 使用 jquery 更改 html <em> 标记内的文本

jQuery 更改 tr CSS 直到 tr 类不同