使用jQuery的.each()方法连接多个数组

3
我正在尝试从多个div的id创建一个数组。以下是我的代码:
$(function(){
    $('#content > div[id^=post]').each(function(){
        var ele = Number($(this).attr('id').substr(5,4));
        var arr = $.makeArray(ele);
    });
});

我有一个包含数字的变量ele列表,我想将这些数字连接成一个数组。有什么想法吗?

请问您能展示一下您的HTML代码吗? - Greg B
1个回答

4
var arr = $('#content > div[id^="post"]').map(function(){
    return Number($(this).attr('id').substr(5,4));
}).toArray();

1
+1,但我建议使用toArray而不是get,仅仅是为了更清晰明了。当然,功能上没有任何区别。 - user1106925
1
我唯一想改变的是将 $(this).attr('id') 改为 this.id,这只是个人偏好而已。还有就是在 post 周围加上双引号,但那已经非常挑剔了。 - Kevin B
@KevinB:实际上,如果我没记错的话," 是必需的。 - SLaks
太棒了。现在我可以获取数组中最大的数字并相应地进行样式设置:var featurePost = Math.max.apply(Math, arr); $('#post-' + featurePost).css('background','#fff'); - SpencerQ
如果属性值没有任何空格,那么匹配该属性值时不需要使用引号(id本身就不能有空格,但例如alt可能会有)。然而,最好仍然使用引号是一个好习惯。 - js-coder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接