2017-12-27 1056 views
0

我不知道正確的術語這裏,所以讓我告訴我的代碼:將JSON數據添加到html選項選擇器後,如何在選擇時引用其他數據?

var json = "https://example.com/"; 

$.getJSON(json,function(data) { 
    for (var x = 0; x < data.length; x++) { 

     $('#select').append(
      '<option value="' + data[x].name + '">' + data[x].name + '</option>' 
     ); 
    } 
}); 

JSON數據如下所示,但更多的數據:

[ 
{ 
    "id": "test1", 
    "name": "test1", 
    "symbol": "t1", 
    "rank": "1", 
    "price_usd": "55" 
}, 
{ 
    "id": "test2", 
    "name": "test2", 
    "symbol": "t2", 
    "rank": "2", 
    "price_usd": "155" 
} 
] 

本質上講,當有人使用選擇選項並選擇「test1」我想顯示其他信息,例如;身份證,符號,排名等等。動態地去做這件事,而不是寫一堆if語句的最好方法是什麼?

+0

您有一個XSS漏洞。 – SLaks

+0

@SLaks這不適用於任何官方,只是爲了我自己的用途來追蹤一些數據。 – user3330820

回答

1

要獲得對象中的所有數據你使用填充選項(data[x].name)其中,
您可以過濾對象的數組或改變結構,因此您可以通過名稱引用它,

這裏是一些例子。

過濾陣列:

var dataXName = 'whatever name' 
var obj = data.filter(function(x){ return x.name === dataXName })[0] 

映射的對象:上述

var byName = data.reduce(function(ac, x){ 
    return Object.assign(ac, {[x.name]:x}) 
},{}) 
// then you can reference the object with byName['whatever name'] 

的解決方案是簡單的js和不依賴於jquery的。

+0

謝謝。過濾數組完美運作。 – user3330820

1

將得到的JSON字符串放入使用[JSON.parse]1的對象中。然後,您可以使用.toggle()或其他一些jQuery有趣的功能,並定位對象中的適用項目和值。

相關問題