2 回答

TA貢獻1818條經驗 獲得超3個贊
當嘗試選擇一個元素時,jQuery 總是創建一個 jQuery 對象。即使它不在你的 DOM 上 (n.fn.init)
我認為$("tbody tr")
是一個未定義的目標或格式錯誤的選擇器,可以替換為:$('#rfqTable tr')
并且應該可以工作,因為我在代碼中沒有看到任何 tbody 元素。(如果它是由 Angular 創建的,請提供反饋以供進一步調查)。
如果它為您提供了一個非空對象,請同時檢查您的表配置,因為您的表配置超過了 tr 級別,#rfqTable
并且可能會導致問題。您可能想要為父元素指定一個 ID 和一些定義(例如 data-something)來標記您想要選擇的元素(或避免其他不選擇的元素)。

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 }))
}
- 2 回答
- 0 關注
- 132 瀏覽
添加回答
舉報