Avatar billede jgp Nybegynder
11. december 2001 - 09:10 Der er 11 kommentarer og
1 løsning

Find parent til child

Jeg har følgende:
var hovedside = new Node(\"Main Menu\",\"http://\");
hovedside.child[0] = new Node(\"News\",\"http://\");
hovedside.child[0].child[0] = new Node(\"Events\", \"http://\");
hovedside.child[0].child[0].child[0] = new Node(\"X-mas party\", \"stiltilfil\");
hovedside.child[0].child[1] = new Node(\"Photos\", \"http://\");
hovedside.child[0].child[1].child[0] = new Node(\"Pictures\",\"stiltilfil\");

Jeg vil gerne have lavet en funtion, der endten kan finde parent til et child, eller som kan løbe strukturen igennem bagfra.

Hvis der er behov for yderlige dele af scriptet må i sige til.

På forhånd tak
JGP
Avatar billede jgp Nybegynder
11. december 2001 - 09:48 #1
Har fundet ud af at finde parent, mangler stadig at kunne løbe strukturen igennem bagfra.
Avatar billede jakoba Nybegynder
11. december 2001 - 10:36 #2
Som oftest gør man det med en ekstra parameter i constructoren:

hovedside.child[0] =
        new Node( \"\", \"News\", \"http://\");
hovedside.child[0].child[0] =
        new Node( hovedside.child[0], \"Events\", \"http://\");
hovedside.child[0].child[0].child[0] =
        new Node( hovedside.child[0].child[0], \"X-mas party\", \"stiltilfil\");
hovedside.child[0].child[1] =
        new Node( hovedside.child[0], \"Photos\", \"http://\");
hovedside.child[0].child[1].child[0] =
        new Node( hovedside.child[0].child[1], \"Pictures\", \"stiltilfil\");

her er første param i hvert kald til Node lægges så i en attrubut i objektet, fx med navnet parentElement.

( navnet parentElement har jeg hugget fra DOM, Det skader ikke at genbruge den slags navngivnings-konventioner :-))

mvh JakobA
Avatar billede jakoba Nybegynder
11. december 2001 - 10:37 #3
hvad mener du med at \'løbe igennem bagfra*
Avatar billede jgp Nybegynder
11. december 2001 - 10:50 #4
jakoba: at man først tage det sidste child, så det næstsidste osv..
Avatar billede tknudsen Nybegynder
11. december 2001 - 10:59 #5
jgp >> er det den allersidste child (altså hovedside.child[n]s sidste child) eller hovedside.child[0]s sidste child - eller hvad ?
Avatar billede jakoba Nybegynder
11. december 2001 - 10:59 #6
<script type=\'text/javascript\'>

function bagfra( nod ) {
    for (var i=nod.child.length-1; i>=0; i--) bagfra( nod.child[i] );
    // brug titel og sti for denne node;
}

</script>

mvh JakobA
Avatar billede jgp Nybegynder
11. december 2001 - 11:19 #7
tknudsen: Den skal løbe igennem fra allersidste child af dem alle til den allerførste child af dem alle
Avatar billede jgp Nybegynder
11. december 2001 - 12:35 #8
jakoba: tak for rutinen, den virker som den skal.

Kan det lade sig gøre at lave en rutine som hopper et child ned af gangen? alså:
hovedside.child[0]
hovedside.child[0].child[0]
hovedside.child[0].child[1] (Springer denne over)
hovedside.child[0].child[0].child[0]
Avatar billede jakoba Nybegynder
11. december 2001 - 12:44 #9
function forresteBarn( nod ) {
    if ( nod.child.length > 0 )
        forresteBarn( nod.child[0] );
    else
        // dette er forreste barn brug titel og sti for denne node;
}
Avatar billede jgp Nybegynder
11. december 2001 - 13:29 #10
jakoba : tak for dit svar.. der går lidt før jeg får svaret dig, da jeg har et andet projekt jeg bliver nød til at bruge tid på.
Avatar billede jgp Nybegynder
12. december 2001 - 15:56 #11
jakoba
Avatar billede jgp Nybegynder
12. december 2001 - 15:57 #12
hovsa...

... tak forhjælpen :-)
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