jQuery get data as object or array

Viewed 233

I would like to get all elements with class .my-data-tid and data-tid values into an object or array

<div class="my-data-tid" data-tid="1">1</div>
<div class="my-data-tid" data-tid="2">2</div>
<div class="my-data-tid" data-tid="3">3</div>
<div class="my-data-tid" data-tid="4">4</div>

with

var tid = $('.my-data-tid').data('tid');

I get only the first value

1 Answers

You need to use .map() to convert jquery selector object to object contain target values and use .toArray() to convert result to array.

var tid = $('.my-data-tid').map(function(){
  return $(this).data('tid');
}).toArray();
console.log(tid);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="my-data-tid" data-tid="1">1</div>
<div class="my-data-tid" data-tid="2">2</div>
<div class="my-data-tid" data-tid="3">3</div>
<div class="my-data-tid" data-tid="4">4</div>

Related