亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JQuery 返回一個空對象

JQuery 返回一個空對象

眼眸繁星 2023-09-11 15:14:34
我正在嘗試使用以下函數將表轉換為 JSON 對象:turnTableIntoJSON(table)  {    let jquery = require("jquery");    const $: JQueryStatic = jquery    let myRows = []    let headersText = []    let $headers = $("th")    var $rows = $("tbody  tr").each(function(index)    {      let $cells = $(this).find("th")      myRows[index] = {};      $cells.each(function (cellIndex)      {        if(headersText[cellIndex] == undefined)        {          headersText[cellIndex] = $($headers[cellIndex]).text();        }        myRows[index][headersText[cellIndex]] = $(this).text();      })    })    let myObj = {"myRows": myRows}    console.log(JSON.stringify(myObj))  }但由于某種原因,控制臺為我記錄了一個空對象,我嘗試將表作為參數傳遞,并得到相同的結果,不知道為什么會這樣。沒有錯誤輸出或任何東西只是一個空對象。作為參考,這是在 HTML 中配置表的方式: <table id="rfqTable" class="table table-bordered table-responsive-md table-striped text-center" border="1">    <tr align="left">      <th>Header 1</th>      <th>Header 2</th>      <th>Header 3</th>      <th>Header 4</th>      <th>header 5</th>      <th>6</th>      <th>7</th>      <th>8</th>      <th>9 | Price</th>      <th>10</th>      <th>11</th>      <th>12</th>      <th>13</th>      <th>14</th>      <th>15</th>      <th>16 UoM</th>      <th>17</th>      <th>18</th>      <th>19</th>    </tr>
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

當嘗試選擇一個元素時,jQuery 總是創建一個 jQuery 對象。即使它不在你的 DOM 上 (n.fn.init)

我認為$("tbody  tr")是一個未定義的目標或格式錯誤的選擇器,可以替換為:$('#rfqTable tr')并且應該可以工作,因為我在代碼中沒有看到任何 tbody 元素。(如果它是由 Angular 創建的,請提供反饋以供進一步調查)。

如果它為您提供了一個非空對象,請同時檢查您的表配置,因為您的表配置超過了 tr 級別,#rfqTable并且可能會導致問題。您可能想要為父元素指定一個 ID 和一些定義(例如 data-something)來標記您想要選擇的元素(或避免其他不選擇的元素)。


查看完整回答
反對 回復 2023-09-11
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

隨著表的標題行<thead>...</thead>和表的主體被包含<tbody>...</tbody>(因為它們應該是這樣),您可能需要考慮:


turnTableIntoJSON(table) {

    let jquery = require('jquery');

    const $: JQueryStatic = jquery;

    let headers = $(table).find('thead th').get().map(th => $(th).text());

    let myRows = $(table).find('tbody tr').get().map(tr => {

        let obj = {};

        $(tr).find('th').each(function(index, cell) {

            obj[headers[index]] = $(cell).text();

        });

        return obj;

    });

    console.log(JSON.stringify({ myRows }))

}


查看完整回答
反對 回復 2023-09-11
  • 2 回答
  • 0 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號