I\'m using a bit of code suggested by a member on stackoverflow and adapted by me to wrap every 3 list items as part of a mega menu. The code is:
var lis = $
have you tried applying it withe the use of the class as ht selector like this?
var lis = $("ul.list-content > li");
for(var i = 0; i < lis.length; i+=3) {
lis.slice(i, i+3).wrapAll("<div class='new'></div>");
}
But if you did not know, I'm warning you that you are breaking the dom.. you are putting div on ul which is not good.. ;)
Your problem is your selector. Since sizzle
works right to left, it will just query all LI elements
which have an UL element
as direct parent (which usually, is always the case).
So, seperate your ULs
.
$('ul').each(function(){
var $lis = $(this).children('li');
for(var i = 0, len = $lis.length; i < len; i+=3){
$lis.slice(i, i+3).wrapAll("<div class='new'></div>");
}
});