gpt4 book ai didi

javascript - 在 JavaScript 中构建一个对象,该对象由 HTML 表格行中单元格的名称/值对组成

转载 作者:行者123 更新时间:2023-11-30 14:12:32 26 4
gpt4 key购买 nike

我是 JS 的新手,所以请多多包涵;我什至不确定我是否以正确的方式寻找答案,但经过数小时的谷歌搜索和修补,我还是无法让它正常工作。

我有一个 HTML 表格,用户点击了一行。我可以这样获取点击的元素:

var elem = document.elementFromPoint(e.clientX, e.clientY);

我也可以这样获取行:

var tr = elem.closest("tr");

现在我想从单元格中构建一个名称/值对数组,其中名称是数据字段名称,值是单元格的内部文本,所以我这样做:

var set = []; 

$.each(tr.cells, function(cell) {
set.push({name : cell.dataset.field, value : cell.innerText});
});

但是我收到了这个错误:

Uncaught TypeError: Cannot read property 'field' of undefined
at HTMLTableCellElement. (:1:80)
at Function.each (jquery.min.js:2)
at :1:17

这是在 Chrome 开发工具控制台中的样子:

enter image description here

这是 tr 上的 watch ,其中突出显示的部分显示了我正在寻找的 field

enter image description here

我很确定我可以在获取名称/值对数组后将其转换为一个对象,例如使用 JSON.parse() 或其他东西。


那么我的代码或方法有什么问题呢?是否有更简洁或更有效的方法来完成我想做的事情?

最佳答案

您只是缺少 $.each() 所需的参数顺序(索引是第一个参数,然后是元素)。所以你只需要将其更改为:

$.each(tr.cells, function(index, elem) {
set.push({
name: elem.dataset.field,
value: elem.innerText
});
});

关于javascript - 在 JavaScript 中构建一个对象,该对象由 HTML 表格行中单元格的名称/值对组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54151244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com