2017-09-02 37 views
-1

在過去的幾天裏,我一直試圖發出一個所有使用jQuery的產品名稱列表。這是我的,但它返回undefined或給它的東西。

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(data.categories, function(idx, obj) { 
$.each(obj.packages, function(idx, pack) { console.log(pack.name); }); 
}); 

否則,如果您需要的軟件包名只爲第一類,則: $。每個(data.categories [ 0] .packages,function(idx,pack){console.log(pack.name);});