03. februar 2001 - 17:14Der er
10 kommentarer og 1 løsning
children[n]
Jeg skal bruge en kodestump der kan ændre en egenskab i alle \'børnene\' i en container. Jeg ved det kan lade sig gøre, men jeg kan ikke få det til at virke. Er der nogen der er klogere end mig? Helt specifikt skal det være en menu der folder sig sammen/ud når man klikker på punkterne. ALtså <ul> <li>A</li> <li onclick=\"udvid(this)\">B</li> <ul> <li style=\"display:none\">et skjult punkt der vises når der klikkes på B</li> </ul> <li>C</li> </ul> Koden skal så kunne ændre display fra none til block for alle børnene af \'this\', men ikke børnebørnene. Lidt ala function udvid(element) { for (i=0; i==antal børn i element; i ++) { element.child[n].style.display = \'block\'; } }
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
hvad med function udvid(el) { for (var i in el.children) el.children[i].style.display=\'block\' // eller \'\' } virker vist ikke i NS4.x og er utestet, men burde fungere, i IE + NS6
Den kommer med en fejl meddelse children[...].style er ikke et objekt Her er hele koden: <html> <head> <title>her er det så</title> <script type=\"text/javascript\"> function udvid(el) { for (var i in el.children) el.children[i].style.display=\'block\' // eller \'\' } </script> </head> <body> her er listen <ul> <li>A</li> <li onclick=\"udvid(this)\">B</li> <ul> <li style=\"display:none\">et skjult punkt der vises når der klikkes på B</li> </ul> <li>C</li> </ul>
hvis jeg prøver med koden function udvid(el) { if (el.children[0].style.display==\'none\') { el.children[0].style.display=\'block\'; } else { el.children[0].style.display=\'none\'; } } Virker den heller ikke. Den kommer ikke med nogle fejl, men der sker heller ikke noget. Jeg fatter altså ikke det children[]. Det ville ellers spare mig en masse kode.
Nå, der er åbenbart ikke så mange der gider sidde og nørde på en lørdag aften. Jeg logger af, og kigger ind igen imorgen. Håber der er nogen der kan forklare mig det.
prøv med det her: <script type=\"text/javascript\"> function pushed(el) { for (var i=0; i<el.children.length; i++) el.children[i].style.display=el.children[i].style.display==\'none\'?\'\':\'none\' } </script> </head> <body> her er listen <ul> <li>A</li> <li onclick=\"pushed(this)\">B</li> <ul style=\"display:none\"> <li>et skjult punkt der vises når der klikkes på B</li> </ul> <li>C</li> </ul>
jeg havde glemt to ting: 1) du skal sætte display til none på den UL der er indenunder, naturligvis ikke den næste li, da li2 er barnebarn af li1 og ikke barn. 2) brug \"for(i=0; i<el.children.length; i++)\" da egenskaben length er med i \"for(i in el.children)\" Derudover har jeg lavet den så den folder sammen når man trykker på den igen. :-)
Hm, det virker fint, lige bortset fra at børnebørnene også bliver ramt. Det virker jo kun i et niveau. Men det hører vel med at børnene arver deres forældres egenskaber.
Det var vist også noget sludder jeg fik skrevet. Det der kom bag på mig, var at når jeg klikkede på et underpunkt, så foldede det sammen igen. Nu tror jeg jeg skal have lidt at vide om parents. SÅ vil jeg lægge et span ind i li\'en, som får forældrenes børn til at vises. Har du styr på dem? Jeg vil gerne kaste 30 point mere efter det. Noget af denne stil <script type=\"text/javascript\"> function pushed(el) { for (var i=0; i<el.children.length; i++) el.children[i].style.display=el.children[i].style.display==\'none\'?\'\':\'none\' } </script> </head> <body> her er listen <ul> <li>A</li> <li><span onclick=\"pushed(parent.this)\">B</span></li> <ul style=\"display:none\"> <li><span onclick=\"pushed(parent.this)\">et skjult punkt der vises når der klikkes på B</span></li> <ul style=\"display:none\"> <li>endnu et underpunkt</li> </ul> <li>et skjult punkt der vises når der klikkes på B</li> <li>et skjult punkt der vises når der klikkes på B</li> <li>et skjult punkt der vises når der klikkes på B</li> <li>et skjult punkt der vises når der klikkes på B</li> <li>et skjult punkt der vises når der klikkes på B</li> </ul> <li>C</li> </ul>
Jeg ved ikke om du stadig følger med i det her spørgsmål, men jeg tænkte du måske ville se det færdige resultat. Det er blevet helt ok synes jeg. http://www.mur-tag.dk/muc/ny_side_1.htm
Synes godt om
Ny brugerNybegynder
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.