-1

packageid が 9 に等しいオブジェクトのすべてのデータ ID を保存しようとしています。ここで 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

あなたのことを完全に理解しているかどうかはわかりませんが、これがあなたが目指していたものだと思います。そうでない場合は、さらに説明してください。.get() で.map()を使用すると、カスタム オブジェクトの配列を取得できます。

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 に答える
0

これが役立つかどうかはわかりませんが、これを調べてみてください: http://api.jquery.com/jQuery.inArray/

これで packageid 9 を見つけて、表示したいものを表示できます。今は $("h2").html(dataids); で。配列を表示しようとしていますが、これが正しく機能しない理由を説明している可能性があります;)

于 2013-01-15T15:44:22.053 に答える