如何从JS ES6中的多个元素的data属性创建数组?

我正在尝试在适当的JS ES6中根据多个元素的数据属性创建一个数组。

我们使用以下HTML:

<div class="item" data-geo="['bondi Beach',-33.890542,151.274856,4]">
<div class="item" data-geo="['Coogee Beach',-33.923036,151.259052,5]">
<div class="item" data-geo="['Cronulla Beach',-34.028249,151.157507,3]">
<div class="item" data-geo="['Manly Beach',-33.80010128657071,151.28747820854187,2]">
<div class="item" data-geo="['Maroubra Beach',-33.950198,151.259302,1]">

我想从每个元素中获取数据属性(“ data-geo”,JSON格式),然后将其转换为JS中的数组,如下所示:

  var locations = [
    ['bondi Beach',4],['Coogee Beach',5],['Cronulla Beach',3],['Manly Beach',2],['Maroubra Beach',1],];

到目前为止,在jQuery中找到了很多示例,但在JS ES6中却找不到。

gy810071752 回答:如何从JS ES6中的多个元素的data属性创建数组?

使用dataset

var locations = []

document.querySelectorAll('[data-geo]').forEach(el =>
    locations.push(JSON.parse(el.dataset.geo.replace(/'/g,'"')))
)

console.log(locations)
<div class="item" data-geo="['Bondi Beach',-33.890542,151.274856,4]">
<div class="item" data-geo="['Coogee Beach',-33.923036,151.259052,5]">
<div class="item" data-geo="['Cronulla Beach',-34.028249,151.157507,3]">
<div class="item" data-geo="['Manly Beach',-33.80010128657071,151.28747820854187,2]">
<div class="item" data-geo="['Maroubra Beach',-33.950198,151.259302,1]">

本文链接:https://www.f2er.com/3169002.html

大家都在问