簡體   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