【发布时间】:2013-12-18 20:49:39
【问题描述】:
好的,这可能是一个简单的循环问题,我只是想多了(与第一次相去甚远),但我将发布此问题,以防有人能快速回答我.
我有一个这样的 DOM 元素数组:
<ul id="array">
<li class='item' data-id="1">
<ul class="child">
<li class='item' data-id="2"></li>
<li class='item' data-id="3"></li>
</ul>
</li>
<li class='item' data-id="4"></li>
<li class='item' data-id="5">
<ul class="child">
<li class='item' data-id="6"></li>
<li class='item' data-id="7">
<ul class="child">
<li class='item' data-id="8"></li>
<li class='item' data-id="9"></li>
...
</ul>
</li>
</ul>
</li>
</ul>
我想使用 jQuery 循环并得出类似的结果:
var result = [
{
"id":1,
"children":[
{
"id":2,
"children":[]
},
{
"id":3,
"children":[]
}
]
},
{
"id": 4,
"children":[]
},
{
"id": 5,
"children":[
{
"id":6,
"children":[]
},
{
"id":7,
"children":[
{
"id":8,
"children":[]
},
{
"id":9,
"children":[]
}
]
}
]
}
]
(请注意,为了便于阅读,明显间隔了 :))
如果这是子 ul 项目的确切数量,那将是一个简单的循环。我遇到的问题是列表项树可以根据用户的需要向下多级(实际上,它会在某个时候停止,但你明白了)所以它需要继续循环遍历树直到那里没有了。
【问题讨论】:
标签: javascript jquery arrays map custom-data-attribute