2

次のように作成したオブジェクトがあります。

$(this).find('li').each(function(){
                var $itm = $(this);
                localproducts.push({
                    'dataid' : $itm.attr('data-id'), 
                    'datapackage' : $itm.attr('data-package'), 
                    'packageid' : ($itm.children('.packageid').text())
            });
        });

ここで、作成されたオブジェクト localproducts をフィルタリングしたいと思います。たとえば、packageid が 3 に等しいアイテムのすべてのデータ ID を保存したいとします。配列フィルターでできると思いますが、方法がわかりません。何か助けはありますか?ありがとう!

4

2 に答える 2

1

使用してfilter

var matching = $(localproducts).filter(function(){  
    return this.packageid == 3;
});

使用してeach

var dataids = new Array();

$(localproducts).each(function(){  
    if (this.packageid == 3) dataids.push(this.dataid);
});

例: http://jsfiddle.net/hunter/tqTDQ/

于 2013-01-15T14:43:34.537 に答える
0

jQuery grepユーティリティを試すことができます。

ドキュメントの URL は次のとおりです。

http://docs.jquery.com/Utilities/jQuery.grep

あなたの場合、コードは次のようになります。

var arr = new Array();
arr = jQuery.grep(localproducts, function() {
    return localproducts.packageid == 3;
});

その後、フィルタリングされた情報にアクセスできます。配列内になります。

于 2013-01-15T14:49:23.877 に答える