将JSON数据添加到html选项选择器后,如何在选择时引用其他数据?
问题描述:
我不知道正确的术语这里,所以让我告诉我的代码:将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语句的最好方法是什么?
答
要获得对象中的所有数据你使用填充选项(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
您有一个XSS漏洞。 – SLaks
@SLaks这不适用于任何官方,只是为了我自己的用途来追踪一些数据。 – user3330820