0

我有如下 JSON 数据:

[ { "id": 1 "name": "firstName" }, { "id": 2 "name": "secondName" } ]

现在,我正在使用Bootstrap Typeahead。我想在 typeahead 下拉列表中向用户显示“名称”,但我需要用户选择的“名称”的相应“id”,就像我们在选择框中所做的那样。我的要求是这样的

<select>
   <option value="1">First Name</option>
   <option value="2">Second Name</option>
</select>
4

1 回答 1

0

我不习惯 Bootstrap typeahead,但是当我经过一番搜索后看到它的示例时,它们并没有将数据显示为选择菜单。他们将数据显示为 div 标签。所以我认为这不是你需要的。

因此,我将分享这个 jquery 解决方案,以从您提供的数据数组中创建您需要的内容。

但首先,你的数据数组是一个对象数组,所以在对象元素和另一个元素之间,应该有一个逗号 "," ,除了最后一个元素之外都是如此。

所以你的数组应该是这样的:

[ { "id": 1, "name": "firstName" }, { "id": 2, "name": "secondName" } ]

而从该数组中写入您想要的选择标记的 jquery 解决方案是:

var data=[ { "id": 1, "name": "firstName" }, { "id": 2, "name": "secondName" } ];
var el= document.createElement("select");
for (var i=0 ; i<data.length; i++){
    var child = "<option value='"+data[i].id+"'>"+data[i].name+"</option>";
    $(el).append(child);
}
document.body.appendChild(el); 

这是一个小提琴

于 2015-07-31T08:41:58.430 回答