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 的项目的所有 dataid。我认为可以使用数组过滤器来完成,但不确定如何。有什么帮助吗?谢谢!

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 回答