-1

我正在尝试存储 packageid 等于 9 的对象的所有 dataid,请在此处查看我在 jfiddle 上的代码:

http://jsfiddle.net/Tcwgf/

这似乎没有返回任何东西:

 $("h2").html(dataids);
4

3 回答 3

1

您将对象推入localproducts,然后将整个数组推入catalogue. 所以最后一个数组有 1 个包含数组的项目。

据我了解您的代码,您可以删除localproducts数组并直接推送到catalogue

http://jsfiddle.net/Tcwgf/2/

catalogue.push({ ... });

...

$(catalogue).each(function(){  
  if (this.packageid == 3) dataids.push(this.dataid);
});
于 2013-01-15T15:55:14.133 回答
0

我不知道这是否有帮助,但您可能想研究一下:http ://api.jquery.com/jQuery.inArray/

您可以使用它找到您的 packageid 9,然后显示您想要显示的内容,现在使用 $("h2").html(dataids); 您正在尝试显示一个数组,这可能解释了为什么事情不正常;)

于 2013-01-15T15:44:22.053 回答
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);
}

小提琴

于 2013-01-15T16:04:35.260 回答