Столкнулся с проблемой вывода данных из JSON по id. Задача: в модальном окне получить данные определённого объекта по клику на кнопку, к примеру с data-id=1 и т.д
JS:
function init() {
$.getJSON("card.json", jsonOut);
}
function jsonOut(data) {
console.log(data);
var out='';
for (var key in data) {
out +=`<h2 class="title">${data[key].name}</h2>`;
out +=`<p class="description">${data[key].description}</p>`;
}
$('.outJson').html(out);
}
$(document).ready(function () {
init();
});
JSON
{
"1" : {
"name" : "Name 1",
"description : "Description 1",
"id" : 1
},
"2" : {
"name" : "Name 2",
"description : "Description 2",
"id" : 2
},
"3" : {
"name" : "Name 3",
"description : "Description 3",
"id" : 3
}
}
В данный момент выводит весь список объектов.
<button data-id="1"></button>
<div class="outJSON">
Name 1
Description 1
Name 2
Description 2
Name 3
Description 3
</div>
Т.е, отсортировать нужный объект по id. В гугле ничего подобного не могу найти, помогите ссылкой на подобный вопрос, или же готовым вариантом. Спасибо!
Лучше всего чтобы ключ объекта и был id, это сильно упрощает поиск, иначе только перебором:
const json = {
"1": {
"name": "Name 1",
"description" : "Description 1 ",
"id": 1
},
"2": {
"name": "Name 2",
"description" : "Description 2 ",
"id": 2
},
"3": {
"name": "Name 3",
"description" : "Description 3 ",
"id": 3
}
};
const out = document.getElementById('out');
document.querySelectorAll('[data-btn]').forEach(function(item) {
item.addEventListener('click', function() {
const id = parseInt(this.getAttribute('data-btn'));
for (let i in json) {
if (json[i].id === id) {
out.innerHTML = `
${json[i].name}<br/>
${json[i].description}<br/>
`
return;
}
}
})
});
<button data-btn="1">1</button>
<button data-btn="2">2</button>
<button data-btn="3">3</button>
<p id="out"></p>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Скачал Sublime Text 3, обнаружил не нужную функцию автозакрытия теговПодскажите, как можно ее отключить чтобы все писал я самостоятельно? Плагины...
Немного разобравшись пронял что проблема не в DataGridView