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 关注
- 84 浏览
添加回答
举报