我正在尝试创建一个简单的列视图,它允许我探索嵌套数组。目标是让用户单击“名称”列中的“名称”,并让相应的电影列表出现在下一列中。例如,我会提供一个这样的 JSON 数组:
var array = [
{
"name":"sean connery",
"index":0,
"movies": [
{"name": "Goldfinger",
"id": 43},
{"name":"Thunderball",
"id":103}
]
},{
"name":"pierce brosnan",
"index":1,
"movies": [
{"name": "Goldeneye",
"id": 22},
{"name":"The world is not enough",
"id":100}
]
}
]
基本上,我有点作弊,以便检索相应名称的电影数组。我读取了附加到 li 元素的“索引”属性,并使用它来挑选适当的索引来检索电影数组。
// sorts alphabetically
array.sort(function(a, b) {
return b.name < a.name ? 1 : b.name > a.name ? -1 : 0;
});
$.each(array, function(index, value){
listitem = document.createElement('li');
$(listitem).html(value.name).appendTo($("ul#list")).attr("data-id",value.index);
});
//make it a scrollbox
$("ul#list").scrollTop();
//click to display movies
$("ul#list li").click(function(){
var id = $(this).attr("data-id");
movies = array[id].movies;
console.log(movies);
});
但这似乎不是这里的理想方法。似乎应该有一种方法可以在不需要更改 DOM 的情况下检索适当的电影数组。有什么建议么?还是我正在做的事情是合法的?
谢谢!和一个包含我的代码的小提琴:http: //jsfiddle.net/bmcmahen/WXvWv/2/