Проблема с парой значений в имени начальной загрузки

У меня есть данные 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); 

Это скрипка для этого.

Другие вопросы по тегам