本文介绍如何通过 javascript 高效提取多个具有相同 class 的 dom 元素所携带的 `data-id` 值,并统一构造成一个字符串数组,适用于动态数据采集与前端批量操作场景。
在实际开发中,我们常将结构化数据(如后端返回的 dataset ID)通过 HTML5 的 data-* 属性绑定到 DOM 元素上,例如
。当页面中存在多个同类元素(如一组卡片、列表项或图片容器),且每个都携带唯一 data-id 时,我们需要将其集中提取为一个数组,以便后续进行 AJAX 批量请求、状态管理或筛选逻辑。推荐使用 document.querySelectorAll() 配合 Array.from() 的映射能力一次性完成选择与转换:
const idArray = Array.from(
document.querySelectorAll('.a'),
element => element.dataset.id
);
console.log(idArray); // ["100", "101", "102"]✅ 优势说明:
⚠️ 注意事项:
立即学习“前端免费学习笔记(深入)”;
ata-id,其对应值为 undefined,必要时可添加过滤: const idArray = Array.from(
document.querySelectorAll('.a'),
el => el.dataset.id
).filter(id => id != null && id !== '');该方法兼顾性能与可读性,是现代前端批量读取自定义数据属性的标准实践。