【发布时间】:2019-08-07 00:36:24
【问题描述】:
我有一些 JSON 数据。我试图从中获得类似的值。有没有办法使用javascript来做到这一点?我正在从服务器获取我的 JSON。但我有一个样本。我正在尝试将不同的浏览器版本加载到他们的optgroups 中。
有没有办法做到这一点?
JSON:
[
{
"browser": "Amazon Silk 3.30"
},
{
"browser": "Amazon Silk 49.2"
},
{
"browser": "Edge 42.11"
},
{
"browser": "Edge 42.15"
},
{
"browser": "Google Chrome 0.01"
},
{
"browser": "Google Chrome 0.03"
}
]
HTML
<select id="browsers" style="max-height: 150px; overflow: auto;"></select>
JavaScript
$.getJSON(jsonBrowser, function(data) {
data.forEach((d, i) => {
let browser_val = d.browser.replace(/ /g, "%20");
$('#browsers').append(`<option value=${browser_val} selected>${d.browser}</option>`);
});
});
}
结果: 目前,此代码仅通过下拉列表填充。
Amazon Silk 3.30
Amazon Silk 49.2
Edge 42.11
Edge 42.15
Google Chrome 0.01
Google Chrome 0.03
我需要的结果:我想在我的下拉列表中使用optgroups 来显示:
**Amazon**:
Amazon Silk 3.30
Amazon Silk 49.2
**Edge**:
Edge 42.11
Edge 42.15
**Google**:
Google Chrome 0.01
Google Chrome 0.03
有没有办法使用 JavaScript/jQuery 对它们进行分组?
【问题讨论】:
-
当然。你如何定义组名?第一个空格前的字符串?
-
@HereticMonkey 我正计划对它们进行硬编码。但理论上是的,它是第一个空格之前的字符串
-
"Like" 在这种情况下仅表示“共享相同的子字符串”,因此您可以获取
browser_val.substring(0, browser_val.indexOf(' ')),如果不存在该名称的optgroup,则继续上。不过先对数组进行排序;见Sort array of objects by string property value。
标签: javascript jquery json select optgroup