Как я могу вставить переменную строку в нотации объекта (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);
...
Другие вопросы по тегам