{
"11" : {
"name" : "One",
"cost" : 10000,
"description" : "Bla"
},
"22" : {
"name" : "Two",
"cost" : 11000,
"description" : "Bla Bla"
},
"33" : {
"name" : "Three",
"cost" : 12000,
"description" : "Bla Bla Bla"
}
}
<div class="box">
<div class="item"></div>
</div>
<div class="box">
<div class="item"></div>
</div>
<div class="box">
<div class="item"></div>
</div>
<div class="box">
<div class="item" data-id="11"></div>
</div>
<div class="box">
<div class="item" data-id="22"></div>
</div>
<div class="box">
<div class="item" data-id="33"></div>
</div>
const myJson = `{
"11": {
"name": "One",
"cost": 10000,
"description": "Bla"
},
"22": {
"name": "Two",
"cost": 11000,
"description": "Bla Bla"
},
"33": {
"name": "Three",
"cost": 12000,
"description": "Bla Bla Bla"
}
}`;
const keys = Object.keys(JSON.parse(myJson)); //массив ключей
$('.box .item').each((index, item) => {
$(item).attr('data-id', keys[index]);
});
var json = { /*тут ваш JSON*/ };
var index = 0;
var root = getRoot() // функция, отдающая блок, в котором есть ваш HTML, объект jQuery
for (var p in json) {
if (json.hasOwnProperty(p)) {
//Получить див по индексу внутри контейнера, объект jQuery
var div = getDivByIndexFromRoot(root, index);
div.data('id', p);
}
}
getRoot
, getDivByIndexFromRoot
- выдуманные функции, поведение которых описано в комментариях.