javascript - 将 html 表数据转换为在 javascript 循环中运行

标签 javascript html json

我有一个用 Javascript 生成的表,它输出一些 JSON 数据。现在我知道我可能不应该重复太多,但是这个数组的一个元素需要包装在一个链接中,而且我不知道如何编写一个循环来输出所有成员,但也输出具有某种样式的成员。有没有办法在循环中执行此操作,同时保持此代码给出的输出格式? 表头部分已经处理完毕,tbody 是我遇到问题的地方:正如您最后一个元素不完全适合循环一样。引用this problem我把它循环起来的地方。

for (let j= 0; j< filtered.length; j++){
  var row = table.insertRow(1); 
  row.classList.add("headRow")
  var cell0 = row.insertCell(0);
  cell0.innerHTML = filtered[j].Carat;
  var cell1 = row.insertCell(1);
  cell1.innerHTML = filtered[j].Color;
  var cell2 = row.insertCell(2);
  cell2.innerHTML = filtered[j].Shape;
  var cell3 = row.insertCell(3);
  cell3.innerHTML = filtered[j].Cut;
  var cell4 = row.insertCell(4);
  cell4.innerHTML = filtered[j].Symmetry;
  var cell5 = row.insertCell(5);
  cell5.innerHTML = filtered[j].Report;
  var cell6 = row.insertCell(6);
  cell6.innerHTML = filtered[j].Clarity;
  var cell7 = row.insertCell(7);
  cell7.innerHTML = filtered[j].Polish;
  var cell8 = row.insertCell(8);
  cell8.innerHTML =  '<a href="' + filtered[j].link_view + '"> View</a>' ;
}

最佳答案

您可以尝试创建一个配置对象,其中包含将在每行显示的属性以及将用于确定数据如何显示的渲染器函数。

以下是一个简单示例:

var renderer = {
    text: function(data) {
        return data;
    },
    link: function(data) {
        return '<a href="' + data + '">View</a>';
    }
};

var config = [
    {attr: "Carat", renderer: renderer.text},
    {attr: "Color", renderer: renderer.text},
    {attr: "Shape", renderer: renderer.text},
    {attr: "Cut", renderer: renderer.text},
    {attr: "Symmetry", renderer: renderer.text},
    {attr: "Report", renderer: renderer.text},
    {attr: "Clarity", renderer: renderer.text},
    {attr: "Polish", renderer: renderer.text},
    {attr: "link_view", renderer: renderer.link}
];

filtered.forEach(function(data) {

    var row = document.createElement("tr");

    config.forEach(function(entry) {

        var cell = document.createElement("td"),
            value = data[entry.attr];

        cell.innerHTML = entry.renderer(value);

        row.appendChild(cell);

    });

    table.appendChild(row);

});

关于javascript - 将 html 表数据转换为在 javascript 循环中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58036585/

相关文章:

javascript - 我的 jquery 窗口滚动停止工作

javascript - 使用 javascript 而不是 jquery 打开和关闭菜单

html - 我尝试从 VS Code 运行 HTML 文件,但收到错误 : "Your file couldn’ t be accessed, 它可能已被移动、编辑或删除。”

POST 中的 JSON 正文使用 Rust reqwest Crate

javascript - HTTPServletResponse 方法 setStatus()

html - 图片库代码问题

javascript - 如果对象内容是用户生成的,如何正确转义对象的 JSON 字符串?

javascript - 在 POST 数组中传递默认值

mysql - 我可以比较两个完整的 json 值吗?

javascript - 加深十六进制颜色不起作用