
本教程详细介绍了如何利用 javascript 遍历 html 元素,并根据其自定义数据属性(如 `data-tab`)动态地将相关数据分组到不同的唯一数组或对象中。通过获取 dom 元素、初始化数据容器以及迭代处理每个元素的属性,最终生成一个结构化的 javascript 对象,其中每个键对应一个唯一的 `data-tab` 值,其值则是一个包含该分组下所有元素详细信息的数组,适用于管理和展示大量结构化数据。
在前端开发中,我们经常需要从 HTML 页面中提取数据并进行结构化处理。当页面中存在大量具有相似结构但特定属性值不同的元素时,将这些元素按照某个共同的属性进行分组,是数据组织和管理的重要一环。例如,我们可能有一系列产品卡片,需要根据它们的类别(如“专业版”、“经济版”)进行分组,以便后续的筛选、展示或数据分析。
假设我们有以下一系列 hidden 类型的 input 元素,它们通过自定义数据属性 data-size、data-color 和 data-tab 存储了产品信息:
<input hidden data-size="120x40" data-color="Brown" data-tab="Gardenbox Professional"> <input hidden data-size="160x40" data-color="Brown" data-tab="Gardenbox ECO"> <input hidden data-size="120x40" data-color="Red" data-tab="Gardenbox Professional"> <input hidden data-size="160x40" data-color="Red" data-tab="Gardenbox ECO"> <!-- 更多类似的 input 元素,可能有50个或更多 -->
我们的目标是使用 JavaScript,根据 data-tab 属性的值,将这些 input 元素的数据分组到不同的数组中。最终期望得到一个 JavaScript 对象,其中每个键是唯一的 data-tab 值,而对应的值是一个数组,该数组包含了所有属于该 data-tab 分组的元素详细信息(例如 size、color 和 tab)。
实现这一目标主要分为以下几个步骤:
立即学习“Java免费学习笔记(深入)”;
以下是实现上述功能的 JavaScript 代码:
// 步骤 1: 获取页面上所有 'input' 元素
var inputs = document.querySelectorAll('input');
// 步骤 2: 初始化一个空对象,用于存储最终的分组结果
var groupedData = {};
// 步骤 3: 遍历每个 input 元素并进行数据分组
for (var i = 0; i < inputs.length; i++) {
// 获取当前元素的 data-tab 属性值
var tabValue = inputs[i].getAttribute('data-tab');
// 检查 groupedData 对象是否已经存在以 tabValue 为键的属性
// 如果不存在,则创建一个新的空数组作为该键的值
if (!groupedData.hasOwnProperty(tabValue)) {
groupedData[tabValue] = [];
}
// 创建一个子对象,用于存储当前元素的详细数据
var subObject = {};
subObject["size"] = inputs[i].getAttribute('data-size');
subObject["color"] = inputs[i].getAttribute('data-color');
subObject["tab"] = tabValue; // 直接使用已获取的 tabValue
// 将子对象添加到对应 tabValue 的数组中
groupedData[tabValue].push(subObject);
}
// 打印最终分组结果到控制台
console.log(groupedData);运行上述代码后,console.log(groupedData) 将输出类似以下结构的对象:
{
"Gardenbox Professional": [
{ "size": "120x40", "color": "Brown", "tab": "Gardenbox Professional" },
{ "size": "120x40", "color": "Red", "tab": "Gardenbox Professional" }
],
"Gardenbox ECO": [
{ "size": "160x40", "color": "Brown", "tab": "Gardenbox ECO" },
{ "size": "160x40", "color": "Red", "tab": "Gardenbox ECO" }
]
}// 使用 dataset API 的示例 var tabValue = inputs[i].dataset.tab; subObject["size"] = inputs[i].dataset.size; subObject["color"] = inputs[i].dataset.color;
var tabValue = inputs[i].dataset.tab || 'unknown'; // 如果不存在,则归类到 'unknown'
通过本教程,我们学习了如何利用 JavaScript 遍历 HTML 元素,并根据其自定义数据属性(如 data-tab)将数据动态地分组到结构化的 JavaScript 对象中。这种模式在处理和组织前端数据时非常实用,能够帮助开发者高效地管理和利用页面上的结构化信息,为后续的数据展示、过滤和交互奠定基础。掌握这种数据分组技术,能够显著提升前端数据处理的灵活性和代码的可维护性。
以上就是JavaScript:根据数据属性创建唯一数组集合的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号