Ik ben nu bezig met een forum, en hiervoor wil ik op de voorpagina alle fora onder een bepaalde catagorie ververgen. Ik heb nu dus zo’n soort HTML
Nu wil ik dat als er op Forum geklikt wordt, dat dan alle onderliggende <tr>’s binnen die catagorie op display: none; worden gezet. Ik heb momenteel deze functie, maar ik loop vast, omdat ik geen idee heb hoe ik de volgende <tr> te pakken krijg.
Met deze pak ik alleen de text- en de <th> nodes in de eerste <tr> (De startNode dus). Hoe kan ik nu alle onderliggende <tr> die onder de catagorie vallen op display:none zetten. Ik zat te denken in de richting van een while-loop die kijkt of het volgende element een </tbody> is. Zolang dit niet zo is, worden alle volgende elementen op display: none; gezet. Alleen heb ik geen idee hoe ik dit toe zou moeten passen. Ik ben niet zo’n javascript-held, maar ik dacht dat ik met nextSibling misschien iets kom berijken, maar het lukte toch niet
Ik heb al met google en de GoT-search gezocht, maar niet echt iets bruikbaars kunnen vinden. Ook heb ik op verscheidene sites gezocht naar DOM-methods, maar niks bruikbaars kunnen vinden.
Misschien dat iemand mij een beetje op weg kan helpen?
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <table> <thead></thead> <tfoot></tfoot> <tbody> <tr id="first"><th><a href="#" onclick="open('first')" colspan="6">Forum</a></th></tr> <tr><td>#</td> <td>#</td> <td>#</td> <td>#</td> <td>#</td> <td>#</td></tr> <tr><td>#</td> <td>#</td> <td>#</td> <td>#</td> <td>#</td> <td>#</td></tr> </tbody> <tbody> <tr id="second"><th><a href="#" onclick="open('second')" colspan="6">Forum</a></th></tr> <tr><td>#</td> <td>#</td> <td>#</td> <td>#</td> <td>#</td> <td>#</td></tr> <tr><td>#</td> <td>#</td> <td>#</td> <td>#</td> <td>#</td> <td>#</td></tr> </tbody> </table> |
Nu wil ik dat als er op Forum geklikt wordt, dat dan alle onderliggende <tr>’s binnen die catagorie op display: none; worden gezet. Ik heb momenteel deze functie, maar ik loop vast, omdat ik geen idee heb hoe ik de volgende <tr> te pakken krijg.
JavaScript:
1
2
3
4
5
6
7
8
| function open(startNode) { var startNode = document.getElementById(startNode); if(startNode.nodeName == "tr") { for(var i=0; i<startNode.childNodes.length; i++) { alert(startNode.childNodes[i].nodeName); } } |
Met deze pak ik alleen de text- en de <th> nodes in de eerste <tr> (De startNode dus). Hoe kan ik nu alle onderliggende <tr> die onder de catagorie vallen op display:none zetten. Ik zat te denken in de richting van een while-loop die kijkt of het volgende element een </tbody> is. Zolang dit niet zo is, worden alle volgende elementen op display: none; gezet. Alleen heb ik geen idee hoe ik dit toe zou moeten passen. Ik ben niet zo’n javascript-held, maar ik dacht dat ik met nextSibling misschien iets kom berijken, maar het lukte toch niet
Ik heb al met google en de GoT-search gezocht, maar niet echt iets bruikbaars kunnen vinden. Ook heb ik op verscheidene sites gezocht naar DOM-methods, maar niks bruikbaars kunnen vinden.
Misschien dat iemand mij een beetje op weg kan helpen?