使用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);