【问题标题】:Populating data in a different table row from one array从一个数组填充不同表行中的数据
【发布时间】:2021-01-21 09:10:50
【问题描述】:

我有以下关于从一个数组中填充不同表格行中的数据的代码。

我想在不同的行显示数据并在语言列中动态获取语言(如下图)

对象:

{
  "English Name": "English",
  "English Description": "English Description",
  "Hindi Name": "Hindi Name",
  "Hindi Description": "Hindi Description",
  "Marathi Name": "Marathi Name",
  "Marathi Description": "Marathi Description"
}
  $.ajax(settings).done(function(response) {
    var result = JSON.parse(response);

    var colName = [];
    for (var i = 0; i < result.data.length; i++) {
      for (var key in result.data[i]) {
        if (colName.indexOf(key) === -1) {
          colName.push(key);
        }
      }
    }

    console.log(colName);

    var showData = document.getElementById('showData');
    for (i = 0; i < result.data.length; i++) {
      var row = `<tr>
            <td>English</td>
            <td>${result.data[i].EnglishName}</td>
            <td>${result.data[i].EnglishDescription}</td>
        </tr>
        <tr>
            <td>Hindi</td>
            <td>${result.data[i].HindiName}</td>
            <td>${result.data[i].HindiDescription}</td>
        </tr>
        <tr>
            <td>Marathi</td>
            <td>${result.data[i].MarathiName}</td>
            <td>${result.data[i].MarathiDescription}</td>
        </tr>`;
      showData.innerHTML += row;
    }
  });
});

【问题讨论】:

  • 问题是什么?
  • 我想在不同的表格行显示JSON对象数据(如上传的图片)
  • 是的,但是到目前为止你所做的有什么问题?
  • 在我的代码中,我为特定行(td)手动添加语言名称和keyname,但我不知道如何在新行中添加不同的语言并在第一列中动态获取语言

标签: javascript jquery arrays json


【解决方案1】:

我的猜测是您的 JSON 需要看起来更像这样:

{
  "data": [
    {
      "language": "English",
      "familyName": "English Name",
      "familyDescription": "English Description"
    },
    {
      "language": "Hindi",
      "familyName": "Hindi Name",
      "familyDescription": "Hindi Description"
    },
    {
      "language": "Marathi",
      "familyName": "Marathi Name",
      "familyDescription": "Marathi Description"
    }
  ]
}

如果result.data 包含数组,那么在您的循环中,一行应该如下所示:

var row = `<tr>
        <td>${result.data[i].language}</td>
        <td>${result.data[i].familyName}</td>
        <td>${result.data[i].familyDescription}</td>
    </tr>`;

编辑

如果JSON格式总是一样的,那么就可以key访问,不需要循环:

        <td>English</td>
        <td>result.data["English Name"]</td>
        <td>result.data["English Description"]</td>

【讨论】:

  • 是的,但我必须使用现有的 JSON 数据格式
  • 我们可以为新行中的新语言创造条件吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
相关资源
最近更新 更多