以这个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);
这是很明显的,因为对象notaion不仅仅是一个字符串值。现在,有什么方法可以将其组合成有效的对象表示法吗?
使用 []
表示法访问对象成员。
...
$(this).find('h2').html(jsonData.pages[page[index]].value);
...