Sorry to bump (and for the double post), but I was really hoping to get this working. I'm trying to sort links alphabetically by their text content. I'd really like to be able to hold on to the jQuery object element reference after sorting the links. Can anyone give me a hand?
Cheers. On Oct 19, 2:28 am, Yansky <[EMAIL PROTECTED]> wrote: > Hi, I'm having some problems figuring out how to sort links > alphabetically based on their text content and store the reference to > the link. I can do it sans jQuery, but I'd really like to be able to > use jQuery to do it. > > This is what I want to do: > > <div id="test"> > <a href="http://yahoo.com">Yahoo</a> > <a href="http://google.com">Google</a> > <a href="http://aol.com">Aol</a> > </div> > > function sortText(a, b) { > if ( a.text < b.text ) return -1; > else if ( a.text > b.text ) return 1; > return 0;} > > var meh=[]; > > var getT = document.getElementById('test'); > > var getas = getT.getElementsByTagName( 'a' ); > for(var i=0;i < getas.length; i++){ > meh[i]={ text: getas[ i ].textContent, el: getas[ i ] }; > > } > > var sortedLinks = meh.sort( sortText ); > > getT.innerHTML = ''; > > for(var l=0;l < sortedLinks.length; l++){ > getT.appendChild(sortedLinks[l].el); > > } > > I've tried: > > function sortText(a, b) { > > if ( a.text < b.text ) return -1; > else if ( a.text > b.text ) return 1; > return 0;} > > var meh=[]; > > $('#test a').each(function(){ > > meh[i] = { text: $(this).text(), el: $(this) }; > > }); > > var sortedLinks = meh.sort( sortText ); > > $(sortedLinks).each(function(l){ > > $('#test).append([l].el); > > }); > > ...but that doesn't seem to work. > > I've also tried using $.map, but I couldn't figure it out.