我正在处理一些稍微超过我的头,我似乎无法找到任何与此相关的库。在我正在编写的Web应用程序中,我有一个n个人的列表,当点击一个人的姓名时,会生成一个由该人编写的n篇文章列表。我正在尝试使用JavaScript和JSON来完成此操作。选择JSON对象数据表元素来列出其所有元素
这是我的JSON数据将如何组织:
var people = {
'clients': [
{
'fname': 'joe',
'lname': 'smith',
'AFD': [
{
'articleName': 'AFDArticle1byjoe'
},
{
'articleName': 'AFDArticle2byjoe'
},
{
'articleName': 'AFDArticle3byjoe'
},
{
'articleName': 'AFDArticle4byjoe'
},
{
'articleName': 'AFDArticle5byjoe'
}
]
},
{
'fname': 'jim',
'lname': 'Hoff',
'AFD': [
{
'articleName': 'AFDArticle12byjim'
}
]
},
{
'fname': 'rick',
'lname': 'Robinson',
'AFD': [
{
'articleName': 'AFDArticle5byrick'
}
]
},
{
'fname': 'sarah',
'lname': 'Ross',
'AFD': [
{
'articleName': 'AFDArticle20bysarah'
}
]
},
{
'fname': 'jack',
'lname': 'jones',
'AFD': [
{
'articleName': 'AFDArticle9byjack'
}
]
}
]
};
每个人都有一个名字,姓氏,和n AFD文章的列表。
此代码将很好地从JSON例如上面列出了N多人的数量在一个HTML表:
<table border="1">
<script>
for (var i=0;i<people.clients.length;i++)
{
$("#tabX").append("<tr><td>"+people.clients[i].fname+"</td></tr>");
}
</script>
</table>
,所以我会得到第一个名字的一些不错的输出在表像这样: “joe jim rick sarah jack”
所以通过点击“joe”,会生成Joe文章的数据表。我已经能够做到这一点,像这样:
<table border="1">
<script>
for (var i=0;i<people.clients.length;i++)
{
$("#tabX").append("<tr><td>"+people.clients[ selectedClient ].AFD[i].articleName+"</td></tr>");
}
</script>
</table>
其中“selectedClient”是当前已将其选择客户端,AFD文章将像这样产生:由Joe AFD第1,...,AFD第四条乔。
所以最后!我有一些问题可以帮助我解决这个问题。如何在点击某人的姓名后更改selectedClient的值?这可能是通过执行像下面这样的函数来完成的吗?
$("#tabX").append("<tr><td><a href="javascript:selectName();">" +people.clients[i].fname+ "</a></td></tr>");
你可以做一个[小提琴](http://jsfiddle.net)? –
是的,差不多完成了 – user2636774
http://jsfiddle.net/bJ3eM/ – user2636774