我想通过each()
将一些值推送到JSON这是我的HTML代码:
<div class="user-dat" data-unread="61222"></div>
<div class="user-dat" data-unread="61555"></div>
<div class="user-dat" data-unread="61206"></div>
我的jquery代码
$(".user-data").each(function(index,value(){
var unreadID = [];
unreadID.push($(this).attr('data-unread'));
}
这是我的输出:
["61222"]
["61555"]
["61206"]
但我想要这个:
["61222","61555","61206"]
如何修复我的代码,或者有任何想法建议?
感谢。
答案 0 :(得分:3)
使用.map()
var array = $('.user-dat').map(function(){
return $(this).data('unread')
}).get()
在您的情况下,您需要在共享上下文中声明数组,以便每次调用每个回调都不会重置数组
答案 1 :(得分:3)
您在每次迭代时重新定义 unreadID
。所以在$ .each之外声明它会解决你的问题。
答案 2 :(得分:2)
问题是您每次迭代都要重新定义数组。在each
函数之外定义数组,如下所示:
var unreadID = [];
$( ".user-data" ).each( function( index,value ) {
unreadID.push( $(this).attr( "data-unread" ) );
});
如果将数组的定义放在循环中,对于每个项目,数组将重置为[]
- 一个空数组。在外部定义变量可确保在继续迭代其余元素时保留现有值。