【发布时间】:2012-11-29 01:10:11
【问题描述】:
从循环中添加对象时,我在以正确格式创建对象时遇到问题。
例如我遍历了一些列表
<ul class="pdmenu">
<ul class="pdmenu">
<li class="menu-top" id="vmen-1"><a href="#">1</a></li>
<li class="menu-item"><a href="#">aaa</a></li>
</ul>
<ul class="pdmenu">
<li class="menu-top" id="vmen-2"><a href="#">2</a></li>
<li class="menu-item"><a href="#">aaa</a></li>
<li class="menu-item"><a href="#">bbb</a></li>
</ul>
<ul class="pdmenu">
<li class="menu-top" id="vmen-3"><a href="#">3</a></li>
<li class="menu-item"><a href="#">aaa</a></li>
<li class="menu-item"><a href="#">bbb</a></li>
</ul>
我使用 jQuery 循环遍历顶部列表项 .menu-top,并将 id 和可见性推送到对象。
jsonmenu = $(); // Set empty object.
$('.menu-top').each(function(index) {
jsonmenu.push({
menu: $(this).attr('id'),
visible: "" + $(this).next().is(':visible') + ""
});
});
这会像这样为每个项目创建带有成员的对象
{
"0": {
"menu":"vmen-1",
"visible":"false"
},
"length":4,
"1": {
"menu":"vmen-2",
"visible":"false"
},
"2":{
"menu":"vmen-3",
"visible":"false"
},
"3": {
"menu":"vmen-4",
"visible":"true"
}
}
我只需要一个简单的格式,如下所示;
{
"menu":"vmen-1",
"visible":"false"
},
{
"menu":"vmen-2",
"visible":"false"
},
{
"menu":"vmen-3",
"visible":"false"
},
{
"menu":"vmen-4",
"visible":"true"
}
如何更改它以获取这种简单格式的对象?
【问题讨论】:
-
你可以使用 jsonmenu=[] 而不是 jsonmenu=$()
-
仅供参考,您所拥有的是
object- 与 json 无关。为了避免混淆,我稍微修改了你的术语。 -
$()创建一个 jQuery 实例,绝对不适合序列化。你为什么用它?
标签: javascript jquery json jquery-plugins