[英]How to create array of objects with key & value from DOM element?
如何创建这样的对象数组?
let cars = [
{
color: "purple",
type: "minivan",
capacity: 5
},
{
color: "red",
type: "suv",
capacity: 5
},
{
...
},
...
]
let cars = []; $(".car").each(function() { var color = $(this).data('color'); var type = $(this).data('type'); var capacity = $(this).data('capacity'); cars.push(); });
.car { background: gold; padding: 10px; margin: 6px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="car" data-color="purple" data-type="minivan" data-capacity="5"> Car 1</div> <div class="car" data-color="red" data-type="suv" data-capacity="5"> Car 2</div> <div class="car" data-color="green" data-type="sedan" data-capacity="2"> Car 3</div>
为了实现您的要求,您可以使用map()
从元素上的所有data
属性构建一个数组:
let cars = $('.car').map((i, el) => el.dataset).get(); console.log(cars);
.car { background: gold; padding: 10px; margin: 6px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="car" data-color="purple" data-type="minivan" data-capacity="5"> Car 1</div> <div class="car" data-color="red" data-type="suv" data-capacity="5"> Car 2</div> <div class="car" data-color="green" data-type="sedan" data-capacity="2"> Car 3</div>
你做得对,你需要将元素对象推入数组
let cars = []; $(".car").each(function() { var color = $(this).data('color'); var type = $(this).data('type'); var capacity = $(this).data('capacity'); cars.push({color, type, capacity}); }); console.log(cars)
.car { background: gold; padding: 10px; margin: 6px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="car" data-color="purple" data-type="minivan" data-capacity="5"> Car 1</div> <div class="car" data-color="red" data-type="suv" data-capacity="5"> Car 2</div> <div class="car" data-color="green" data-type="sedan" data-capacity="2"> Car 3</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.