Проблема с парой значений в имени начальной загрузки
У меня есть данные JSON, как показано ниже:
[{"id": 1 "name": "firstName"}, {"id": 2 "name": "secondName"}]
Теперь я использую Bootstrap Typeahead. Я хочу показать "имя" пользователям в раскрывающемся списке "typeahead", но мне нужен соответствующий "id" для "name", выбранного пользователем, что мы обычно делали в поле выбора. Мое требование что-то вроде этого
<select>
<option value="1">First Name</option>
<option value="2">Second Name</option>
</select>
1 ответ
Я не привык к типу "Bootstrap", но когда я увидел его примеры после небольшого поиска, они не отображают данные в виде меню выбора. Они показывают данные в виде тегов div. Поэтому я не думаю, что это то, что вам нужно.
Поэтому я поделюсь этим решением jquery, чтобы создать то, что вам нужно, из предоставленного вами массива данных.
Но, прежде всего, ваш массив данных - это массив объектов, поэтому между элементом object и другим должен быть запятый ",", это верно, за исключением последнего элемента.
Итак, ваш массив должен быть таким:
[ { "id": 1, "name": "firstName" }, { "id": 2, "name": "secondName" } ]
И решение jquery для записи тега select, который вы хотите из этого массива, заключается в следующем:
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);
Это скрипка для этого.