Avatar billede elskermad.dk Nybegynder
06. oktober 2006 - 16:18 Der er 6 kommentarer og
1 løsning

Sortere en række divs efter deres attribute

Hej Eksport

Jeg har lavet et system hvor min side løbende modtager nyt indhold som jeg indsætter i en ny div på siden.

Jeg sætter en attribute på div'en ved navn 'slut' med et timestamp for hvornår den skal fjernes.

Derfor kunne jeg godt tænke mig at kunne sortere alle divene så den med mindst værdi i 'slut'-attributen altid er øverst.

Divsne er indlagt i en hoveddiv ved navn auktioner.

Kan det lade sig gøre?
Det skal være en funktion der kan køres hver gang indhold bliver loadet ind via min feed-funktion.

På forhånd tak for tips og ideer til hvordan det kan lade sig gøre :)
Avatar billede roenving Novice
06. oktober 2006 - 17:39 #1
Læg alle dine divs i et array, f.eks. med

par = document.getElementById("parentElm");
while(par.childNodes.length)
  divs[divs.length] = par.removeChild(par.firstChild);

-- derefter laver du din egen sorteringsrutine:

function mySort(a,b){
  return a.att > b.att ? 1 : a.att == b.att ? 0 : -1;
}
//hvor att er din attribut
//brug a.getAttribute("att"), hvis det skal være en anelse fremtidssikret !-)

-- og sorterer arrayet:

divs.sort(mySort);

-- og indsætter dem igen:

for(i=0; divs.length>i; i++)
  par.appendNode(divs[i]);

-- absolut utestet !o]
Avatar billede elskermad.dk Nybegynder
06. oktober 2006 - 17:53 #2
det virker egentlig smart :) har ikke lige mulighed for at teste endnu, men vil det være muligt at se et glimt når den sorterer? eller burde den gøre det ubemærket hvis der fx ikke er noget at sorterer?
Avatar billede elskermad.dk Nybegynder
06. oktober 2006 - 18:10 #3
for (i=0;i<divs.length;i++) {
    placering.appendNode(divs[i]);
}

Den her giver js-fejl, resten af koden ser ud til at virke - den sætter dem bare ikke ind igen :S
Avatar billede elskermad.dk Nybegynder
06. oktober 2006 - 18:12 #4
det virker hvis man ændre det til appendChild :P Det er fand** lækkert!

smider du et svar? :)
Avatar billede roenving Novice
11. oktober 2006 - 18:12 #5
Ufff ja, der var jeg lige lidt sloppy ...

Velbekomme '-)
Avatar billede elskermad.dk Nybegynder
11. oktober 2006 - 18:31 #6
bedre sent end aldrig c^)
Avatar billede roenving Novice
11. oktober 2006 - 18:35 #7
Tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester