2017-09-02 6 views
-1

最後の数日間、jqueryを使ってすべての製品名のリストを送信しようとしていました。これは私が持っているものですが、それは未定義を返すか、それ以上のものを与えます。

var ech = data.categories[0]; 
console.error(str) 
$.each(ech, function (idx, obj) { 
console.log(obj.packages) 
}); 

これは、JSONファイルです:

{ 
    "categories": [ 
    { 
     "id": 920353, 
     "order": 0, 
     "name": "Packages", 
     "only_subcategories": false, 
     "subcategories": [], 
     "packages": [ 
     { 
      "id": 2410095, 
      "order": 0, 
      "name": "Account Unban", 
      "price": "20.00", 
      "sale": { 
      "active": false, 
      "discount": "0.00" 
      } 
     }, 
     { 
      "id": 2629288, 
      "order": 0, 
      "name": "Test", 
      "price": "0.99", 
      "sale": { 
      "active": false, 
      "discount": "0.00" 
      } 
     } 
     ] 
    }, 
    { 
     "id": 920903, 
     "order": 2, 
     "name": "Popular", 
     "only_subcategories": false, 
     "subcategories": [], 
     "packages": [ 
     { 
      "id": 2410111, 
      "order": 1, 
      "name": "Donate", 
      "price": "5.00", 
      "sale": { 
      "active": false, 
      "discount": "0.00" 
      } 
     } 
     ] 
    } 
    ] 
} 

どのように私はそれが「アカウント禁止を解除」と「テスト」の製品名を表示することができますか?

答えて

2

すべての上categories(それは配列だとして)及びませんが、あなたがcategories配列を持っている最初の項目のすべてのプロパティに行くためにあなたが実際にやってみたいされていることである。

var ech = data.categories; 
$.each(ech, function (idx, obj) { 

は、次のことを確認してください:私は正しいんだ場合、あなたはすべてを表示する

var data = { 
 
    "categories": [ 
 
    { 
 
     "id": 920353, 
 
     "order": 0, 
 
     "name": "Packages", 
 
     "only_subcategories": false, 
 
     "subcategories": [], 
 
     "packages": [ 
 
     { 
 
      "id": 2410095, 
 
      "order": 0, 
 
      "name": "Account Unban", 
 
      "price": "20.00", 
 
      "sale": { 
 
      "active": false, 
 
      "discount": "0.00" 
 
      } 
 
     }, 
 
     { 
 
      "id": 2629288, 
 
      "order": 0, 
 
      "name": "Test", 
 
      "price": "0.99", 
 
      "sale": { 
 
      "active": false, 
 
      "discount": "0.00" 
 
      } 
 
     } 
 
     ] 
 
    }, 
 
    { 
 
     "id": 920903, 
 
     "order": 2, 
 
     "name": "Popular", 
 
     "only_subcategories": false, 
 
     "subcategories": [], 
 
     "packages": [ 
 
     { 
 
      "id": 2410111, 
 
      "order": 1, 
 
      "name": "Donate", 
 
      "price": "5.00", 
 
      "sale": { 
 
      "active": false, 
 
      "discount": "0.00" 
 
      } 
 
     } 
 
     ] 
 
    } 
 
    ] 
 
} 
 
var ech = data.categories; 
 
$.each(ech, function (idx, obj) { 
 
    console.log(obj.packages) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

ありがとうございました。それはうまくいった! :) – NFGamerMC

+0

私はStackoverflowを初めて使用しています。どうすればいい? – NFGamerMC

+0

私はあなたが何を言っているのか分かりません。それは元の質問に関連していますか? – Dekel

0

すべてのカテゴリのパッケージ名。 もしそうなら、次のように、第二(およびネストされた)の$ .eachを必要とする:

$.each(data.categories, function(idx, obj) { 
$.each(obj.packages, function(idx, pack) { console.log(pack.name); }); 
}); 

そうでなければあなただけの最初のカテゴリのためのパッケージ名が必要な場合、その後: $ .each(data.categories [ 0] .packages、function(idx、pack){コンソールログ(pack.name);});

関連する問題