Zab*_*abs 13 javascript each jquery html5-data
我有以下带有数据属性的HTML - 我想编写一些jQuery,它将循环遍历HTML并收集数据属性并将它们放入数组中 - 任何人都可以帮助我,因为我收到错误.
ERROR in console log : item.data is not a function
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用data()属性 - 你能看到我做错了吗?
//我的HTML代码
<span class="winners" data-userid="123" data-position="1" data-fullname="neil">
<span class="winners" data-userid="234" data-position="2" data-fullname="Ron">
<span class="winners" data-userid="421" data-position="3" data-fullname="Philip">
Run Code Online (Sandbox Code Playgroud)
//我的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
Run Code Online (Sandbox Code Playgroud)
ade*_*neo 29
item不是jQuery对象,参数each是索引和本机DOM元素
var multi = $('.winners');
var winners_array = [];
$.each(multi, function (index, item) {
winners_array.push( {name: 'fullname', value: $(item).data('fullname')} );
});
Run Code Online (Sandbox Code Playgroud)
使用地图会更容易
var winners_array = $.map($('.winners'), function(el) {
return {name: 'fullname', value: $(el).data('fullname')}
});
Run Code Online (Sandbox Code Playgroud)
小智 5
我了解您应该使用$(item),而不是数据。请找到以下代码:
<script type="text/javascript">
var multi = $('.winners');
var winners_array = [];
$.each(multi, function (index, item) {
winners_array.push( {name: 'fullname', value: $(item).data('fullname')} );
});
console.log(winners_array);
</script>
Run Code Online (Sandbox Code Playgroud)