-1

私はこのコードを持っています:

function gatherFollowers() {
            var followers = [];
            jQuery('.follower').each(function(index, value) {
                var i = parseInt(jQuery(this).attr('data-id'));
                followers.push(i);
            });
            return followers;
        }

これはすべての属性を取得する必要がありますが、結果として次のようになります。

[100, 99, 88, 72, 63, 34, 31, 30, 29, each: function, eachSlice: function, all: function, any: function, collect: function…]

次のような単純な配列を返すにはどうすればよいですか。

[4,29,30,31,32,34,36,37,60,61,63,72,76,77,88,99,100] 

ありがとう

4

4 に答える 4

4

map()を使用して必要なものを取得できると確信しています-および .get()

function gatherFollowers() {
    return jQuery('.follower').map(function(i,v){
        return $(v).data('id');
    }).get();
}

フィドル

于 2013-03-11T19:54:49.777 に答える
1

試してみてください

function gatherFollowers() {
    var followers = $.map($('.follower'), function(value) {
        return parseInt($(this).data('id'), 10);
    });

    // followers should be an array of numbers
}

コードを変更して、HTML 5 の data-属性にアクセス$.mapするために使用するようにしました。.data()id

于 2013-03-11T19:51:48.000 に答える
0

実際、この関数の結果をオブジェクトにプッシュすると、本当に役に立ちました followers.data = gatherFollowers();

console.log が表示されるようになりました

Object {data: Array[9], type: "custom"}
data: Array[9]
0: "100"
1: "99"
2: "88"
3: "72"
4: "63"
5: "34"
6: "31"
7: "30"
8: "29"
length: 9
__proto__: Array[0]
type: "custom"

予想通り。

于 2013-03-12T15:04:00.810 に答える