如何将DOM元素的id和value转为含fieldId、fieldValue的键值对结构?
解决方案
你需要将每个任务的id和value包装成包含fieldId、fieldValue键的对象,再统一收集起来。针对你的需求,最合理的实现方式是用数组存储这些结构化对象,修改后的代码如下:
function getTaskData() { const tasks = document.querySelectorAll('.task') // 初始化数组用于存储每个任务的结构化数据 const taskDataList = [] tasks.forEach(task => { const id = task.getAttribute('id'); const value = task.getAttribute('value'); // 生成指定结构的对象并加入数组 taskDataList.push({ fieldId: id, fieldValue: value }) }) console.log(taskDataList); postJSON(taskDataList); }
修改后控制台输出的结构会是:
[ { fieldId: 'mo0', fieldValue: '1' }, { fieldId: 'tu0', fieldValue: '1' }, { fieldId: 'we0', fieldValue: '1' }, ... ]
如果你的业务场景确实需要用对象而非数组存储(比如需要自定义键名),可以通过循环索引作为对象键来实现:
function getTaskData() { const tasks = document.querySelectorAll('.task') const obj = {} tasks.forEach((task, index) => { const id = task.getAttribute('id'); const value = task.getAttribute('value'); obj[`task${index}`] = { fieldId: id, fieldValue: value } }) console.log(obj); postJSON(obj); }
此时控制台输出结构为:
{ task0: { fieldId: 'mo0', fieldValue: '1' }, task1: { fieldId: 'tu0', fieldValue: '1' }, ... }
内容的提问来源于stack exchange,提问作者IoT-Practitioner
相关产品推荐
相关产品推荐

