javascript - 将元素组属性加载为数组数组

标签 javascript jquery

我正在编写这个演示代码。如何修改代码以从每个 .box 的属性中获取 data[] 中的数组数组?

let data = [];
$(".box").each(function(){
    data.push($(this).data('color'), $(this).data('size'));

});
console.log(data);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="box" data-color="red" data-size="large"></div>
<div class="box" data-color="white" data-size="large"></div>
<div class="box" data-color="green" data-size="medium"></div>
<div class="box" data-color="yellow" data-size="small"></div>

最佳答案

正如评论中所建议的,您需要将要推送的数据包装到数组中,如 @r3wt 所解释的。但是,如果您有多个属性,也许对象数组更适合:

let arrayOfData = [...$(".box")].map(
    box => ({
        color: $(box).data('color'),
        size: $(box).data('size'),
        category: $(box).data('category')
    })
);

console.log(arrayOfData);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="box" data-color="red" data-size="large" data-category="short"></div>
<div class="box" data-color="white" data-size="large" data-category="t-shirt"></div>
<div class="box" data-color="green" data-size="medium" data-category="shoes"></div>
<div class="box" data-color="yellow" data-size="small" data-category="short"></div>

关于javascript - 将元素组属性加载为数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55693261/

相关文章:

javascript - 风格化 Javascript 退出弹出窗口

javascript - 在javascript中以数组格式推出随机数

javascript - 如何使用 jQuery POST 而不是 html 表单来删除表条目

javascript - 通过ajax导入JSON并循环

jquery - 如何获取具有多个表单输入的变量

javascript - 了解 HTML 5 事件拖动

javascript - 如何避免Fabric.JS中.animate方法的中断

javascript - 在 Angular JS 中解码 HTML 实体

javascript - 添加日期 jquery 或 JS

javascript - Windows.onload 并在 x 秒后运行