繁体   English   中英

如何从javascript中的对象数组添加表格行?

[英]How to add table row from array of objects in javascript?

我们如何使用 JavaScript 创建表格行

我试图使用 map 函数从 javascript 中的对象数组创建表行,但不知何故其抛出错误

    const renderTableData = (result) => {
            return result.map((item, index) => {
                return (
                    <tr>
                        <td >item.Name</td>
                        <td >item.Date</td>
                        <td >item.state</td>
                    </tr>
                )
            })
        }


    const dataBinding = (result) => {
        let x = document.getElementById("tableSection");
        x.innerHTML = renderTableData(result);
    }

我的 html <table> <tbody id = "tableSection"> </tbody></table>

您应该使用模板字符串

 const renderTableData = (result) => { return result.map((item, index) => { return `<tr> <td >${item.Name}</td> <td >${item.Date}</td> <td >${item.state}</td> </tr>`; }).join(''); }; const dataBinding = (result) => { let x = document.getElementById("tableSection"); x.innerHTML = renderTableData(result); }; dataBinding([ { Name: "first", Date: "2020-09-21", state: "USA" }, { Name: "first", Date: "2020-09-21", state: "USA" }, { Name: "first", Date: "2020-09-21", state: "USA" }, ]);
 <table> <tr> <th>Name</th> <th>Date</th> <th>state</th> </tr> <tbody id="tableSection"></tbody> </table>

我使用模板字符串,因为我们需要为每个项目创建一个多行字符串。 我们可以用普通字符串获得相同的结果,但可读性会差很多。


             "<tr>\
                  <td >"+item.Name+"</td>\
                  <td >"+item.Date+"</td>\
                  <td >"+item.state+"</td>\
              </tr>"

在我们映射对象数组之后,我们最终得到一个字符串数组。 .join('')从该数组中创建一个字符串并删除逗号(如果您将 innerHTML 设置为数组,则元素之间的逗号将被视为要解析的文本)。

当您设置元素的innerHTML 时,提供的字符串将被解析为HTML。 你可以在这里阅读更多关于它的信息

您首先所做的不是有效的 javascript 代码,您使用的是一种JSX

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM