I've come up with a solution to make the nested lists.  I'd be happy
for any comments or pointers on the code as this is still all a bit
new for me and I think that I should be able to avoid the first
enumerate through.

Thanks

<ul id="header">
 <li id="green" class="groupheader">
    <ul>
       <li class="green">grass</li>
       <li class="green">trees</li>
    </ul>
 <li id="blue" class="groupheader">
    <ul>
       <li class="blue">sky</li>
       <li class="blue">sea</li>
    </ul>
 <li id="yellow" class="groupheader">
    <ul>
       <li class="yellow">sun</li>
       <li class="yellow">banana</li>
    </ul>
</ul>

        var savedClass="";
        var groups=new Array;
        /* For each list item*/
        jQuery("ul#header li").each(function(){
                /*Identify each distinct class (or group)*/
                if (jQuery(this).attr("class")!=savedClass) {
                                savedClass=jQuery(this).attr("class");
                                /*Create an array of the group/class titles*/
                                groups.push(savedClass);
                }
        });
        /*Loop through all class/groups*/
        for( var i = 0; i < groups.length; i++ ) {
                /*Create the group header*/
                jQuery('ul#header').append('<li class="groupheader" id="' +
groups[i] + '">');
                /*Add all the group members to the header and wrap them in a 
nested
list**/
                jQuery('ul#map_header li.' + groups[i]).appendTo("#" +
groups[i]).wrapAll("<ul></ul>");
        }


On Feb 20, 9:10 pm, caroig <[EMAIL PROTECTED]> wrote:
> Thanks,
> I've used it a few time.  What I'm not sure about is how to identify
> the first item in each class, create a ul header for it and then add
> all the items in the class below that.  I can see how I could do it if
> I had an array of the distinct classes, but I'm not sure with jQuery
> if there is a quick way of getting hold of this, without enumerating
> through all items explicitly.
>
> On Feb 20, 8:36 pm, tlphipps <[EMAIL PROTECTED]> wrote:
>
> > Might want to look at the treeview 
> > plugin:http://plugins.jquery.com/project/treeview
>
> > On Feb 20, 12:11 pm, caroig <[EMAIL PROTECTED]> wrote:
>
> > > I have an app which is producing a ul something like this:-
> > > <ul>
> > > <li class="green">grass</li>
> > > <li class="green">trees</li>
> > > <li class="blue">sky</li>
> > > <li class="blue">sea</li>
> > > <li class="yellow">sun</li>
> > > <li class="yellow">banana</li>
> > > </ul>
>
> > > I want to create a group the items by the class and then enable
> > > toggling of the group along  the lines of:-
>
> > > + green
> > > -  blue
> > >      sky
> > >      sea
> > > + yellow
>
> > > I guess my best solution is to create a nested list for each class.  I
> > > have some javascript that does more or less the same thing, but I'm
> >   > not sure how to identify each of the classes without iterating through
> >
> the whole lot in jQuery.

Reply via email to