2 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
當(dāng)嘗試選擇一個(gè)元素時(shí),jQuery 總是創(chuàng)建一個(gè) jQuery 對(duì)象。即使它不在你的 DOM 上 (n.fn.init)
我認(rèn)為$("tbody tr")
是一個(gè)未定義的目標(biāo)或格式錯(cuò)誤的選擇器,可以替換為:$('#rfqTable tr')
并且應(yīng)該可以工作,因?yàn)槲以诖a中沒有看到任何 tbody 元素。(如果它是由 Angular 創(chuàng)建的,請(qǐng)?zhí)峁┓答佉怨┻M(jìn)一步調(diào)查)。
如果它為您提供了一個(gè)非空對(duì)象,請(qǐng)同時(shí)檢查您的表配置,因?yàn)槟谋砼渲贸^了 tr 級(jí)別,#rfqTable
并且可能會(huì)導(dǎo)致問題。您可能想要為父元素指定一個(gè) ID 和一些定義(例如 data-something)來標(biāo)記您想要選擇的元素(或避免其他不選擇的元素)。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
隨著表的標(biāo)題行<thead>...</thead>和表的主體被包含<tbody>...</tbody>(因?yàn)樗鼈儜?yīng)該是這樣),您可能需要考慮:
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 關(guān)注
- 129 瀏覽
添加回答
舉報(bào)