我正在研究此演示代码。如何修改代码以从每个data[]
的属性中获取.box
中的数组?
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>
答案 0 :(得分:1)
如评论所述,您需要将要推送的数据包装到数组中,如 @ 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>