jQuery里面的每个函数和数组

时间:2012-06-26 21:27:08

标签: arrays jquery

每个功能都有问题......将尝试通过示例解释......

在我的代码中,有一个ID为“media-type-container-1”的DIV,其内容在运行时更改为“live”:

<div id="media-type-container-1">
    <div><input type="checkbox">Media 11<span id="media-stations-id-11" class="media-stations-id">11</span></div>
    <div><input type="checkbox">Media 12<span id="media-stations-id-12" class="media-stations-id">12</span></div>
</div>

如果它发生变化,可以将其缩小为:

<div id="media-type-container-1">
    <div><input type="checkbox">Media 13<span id="media-stations-id-13" class="media-stations-id">13</span></div>
    <div><input type="checkbox">Media 14<span id="media-stations-id-14" class="media-stations-id">14</span></div>
</div>

要获取所有“media-stations-id”的列表,我使用以下代码:

$("#add-to-filter-stations").live("click", function() {

    var selectedMediaStations = new Array();
    selectedMediaStations.length = 0;

    $('#media-type-container-1').each(function(){
        $('.media-stations-id').each(function(){
            selectedMediaStations.push($(this).attr('id').replace("media-stations-id-", ""));
        })
    });
}

在上述示例中,array selectedMediaStations获取元素11,12,13和14,而不是仅获得13和14.

我做错了什么,所以每次使用实时函数我都不能用空数组“启动”?

1 个答案:

答案 0 :(得分:3)

为什么不尝试像

这样的东西
var selectedMediaStations = $('.media-stations-id').map(function(){
    return $(this).attr('id').replace('media-stations-id-','');
});

// [13, 14]