I have a nested list used in navigation. How can I use jquery to separate nested lists into separate lists with each nested list divided, but keeping a separate list along with the original title?
html:
<ul id="bigList">
<li><a href="#">Diary products</a>
<ul>
<li><a href="#">Milk</a>
<ul>
<li><a href="#">Goat</a></li>
<li><a href="#">Cow</a>
<ul>
<li><a href="#">Smelly</a></li>
<li><a href="#">Extra smelly</a></li>
</ul>
<li><a href="#">Soya</a></li>
</li>
</ul>
</li>
<li><a href="#">Eggs</a></li>
<li><a href="#">Cheese</a></li>
<li><a href="#">Pasta</a></li>
</ul>
</li>
</ul>
Output Required:
<ul>
<li><a href="#">Diary Products</a>
<ul>
<li><a href="#">Milk</a></li>
<li><a href="#">Eggs</a></li>
<li><a href="#">Cheese</a></li>
<li><a href="#">Pasta</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#">Milk</a>
<ul>
<li><a href="#">Goat</a></li>
<li><a href="#">Cow</a></li>
<li><a href="#">Soya</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#">Cow</a>
<ul>
<li><a href="#">Smelly</a></li>
<li><a href="#">Extra smelly</a></li>
</ul>
</li>
</ul>
Javascript so far:
$(function () {
var $bigList = $('#bigList'),
group;
while ((group = $bigList.find('li:lt(20)').remove()).length) {
$('<ul/>').append(group).appendTo('body');
}
});
Here is fiddle
http://jsfiddle.net/zEA5t/3/
source
share