You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:13:20