我正在尝试存储packageid等于9的对象的所有数据集,请在这里查看我在jfiddle上的代码:
这似乎没有任何回报:
$("h2").html(dataids);
答案 0 :(得分:1)
您在localproducts
中推送对象,然后在catalogue
中推送整个数组。所以最后一个数组有1项包含数组。
据我了解您的代码,您可以删除localproducts
数组并直接推送到catalogue
catalogue.push({ ... });
...
$(catalogue).each(function(){
if (this.packageid == 3) dataids.push(this.dataid);
});
答案 1 :(得分:0)
我不知道这是否有帮助,但你可能想要研究一下:http://api.jquery.com/jQuery.inArray/
你可以找到你的packageid 9,然后用$(“h2”)显示你想要显示的内容.html(dataids);你试图显示一个数组,这可能解释为什么事情不正常;)
答案 2 :(得分:0)
我不确定我是否完全了解你,但我认为这是你的目标。如果没有,请解释更多。使用.map()和.get(),您可以获得自定义对象的数组..
var store_products = function () {
// get all li's that have a span.packageid with 9 as the text
var $lis = $('span.packageid').filter(function(i,v){
return $.trim($(v).text()) == 9;
}).closest('li');
// get an array of objects properties you defined
var x = $lis.map(function(i,v){
var $itm = $(v);
return {
'dataid' : $itm.attr('data-id'),
'datapackage' : $itm.attr('data-package'),
'packageid' : $itm.children('.packageid').text()
};
}).get();
// Now variable x is an array of the objects with packageid = 9
console.log(x);
}