使用jQuery通过.each()获取数据属性值

我有以下带有数据属性的HTML – 我想编写一些jQuery,它将循环遍历HTML并收集数据属性并将它们放入数组中 – 任何人都可以协助我收到错误。

ERROR in console log : item.data is not a function 

我正在尝试使用data()属性 – 你能看到我做错了吗?

//我的HTML代码

    

//我的jQuery代码

 var multi = $('.winners'); var winners_array = []; $.each(multi, function (index, item) { winners_array.push( {name: 'fullname', value: item.data('fullname')} ); }); console.log(winners_array); // ERROR in console log : item.data is not a function 

item不是jQuery对象, each的参数都是索引和本机DOM元素

 var multi = $('.winners'); var winners_array = []; $.each(multi, function (index, item) { winners_array.push( {name: 'fullname', value: $(item).data('fullname')} ); }); 

使用地图会更容易

 var winners_array = $.map($('.winners'), function(el) { return {name: 'fullname', value: $(el).data('fullname')} }); 

我知道你应该使用$(item),而不是数据。 请找到以下代码:

  

请改用item.dataset.fullname。

 var multi = $('.winners'); var winners_array = []; $.each(multi, function (index, item) { winners_array.push( {name: 'fullname', value: item.dataset.fullname} ); }); console.log(winners_array);