Как я могу вставить переменную строку в нотации объекта (JSON)?
Возьмем этот объект JSON в качестве примера:
"pages": {
"start": {
....
},
"page1": {
....
},
"page2": {
....
},
....
}
Теперь через функцию jQuery ajax я загружаю вышеупомянутый объект JSON и сохраняю его результат в переменную. Все идет нормально. Тогда у меня есть немного HTML, как это:
<div class="container" page-data="start">
<h2></h2>
</div>
<div class="container" page-data="start">
<h2></h2>
</div>
<div class="container" page-data="page1">
<h2></h2>
</div>
<div class="container" page-data="page2">
<h2></h2>
</div>
Теперь я написал эту функцию для использования данных JSON:
function createContent(el) {
var page, $obj;
page = [];
$obj = el;
$obj.each(function(index) {
page[index] = $(this).attr('page-data');
$(this).find('h2').html(jsonData.pages. + page[index] + .value);
});
}
//here I start the function
$(document).ready(function(){
createContent($('.container'));
});
Что не работает, так это часть вышеуказанной функции:
$(this).find('h2').html(jsonData.pages. + page[index] + .value);
Это довольно очевидно, поскольку объектная нотация - это не просто строковое значение. Теперь, есть ли способ, как я могу объединить это с действительной нотацией объекта?
1 ответ
Решение
Использовать []
нотация для доступа к членам объекта.
...
$(this).find('h2').html(jsonData.pages[page[index]].value);
...