07. august 2003 - 13:12
Der er
11 kommentarer og 1 løsning
flere style:display
Jeg har nogle rækker i en tabel <tr id="a" style="display : none;"> <td></td> </tr> <tr id="a" style="display : none;"> <td></td> </tr> <tr id="a" style="display : none;"> <td></td> </tr> Jeg vil så gerne folde dem ALLE sammen ud med et link - altså display : show; Her bruger jeg et link: <a href="#" onclick="toggle('a');">vis</a> Det virker folder så den første ud, men jeg vil gerne have den til at folde dem alle sammen ud?
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
07. august 2003 - 13:31
#1
har ændret lidt, prøv den her ;) <script type="text/javascript"> function toggle(){ e = document.getElementsByTagName('div'); for(i=0;i<e.length;i++){ if (e[i].id == "a"){ e[i].style.display = "inline"; } } } </script> <div id="a" style="display : none;"> <tr> <td>hej</td> </tr> </div> <div id="a" style="display : none;"> <tr> <td>dav</td> </tr> </div> <div id="a" style="display : none;"> <tr> <td>wee</td> </tr> </div> <a href="#" onclick="toggle('a');">vis</a>
07. august 2003 - 13:36
#2
functionen skal sefølgelig se sådan ud ;) <script type="text/javascript"> function toggle(d){ e = document.getElementsByTagName('div'); for(i=0;i<e.length;i++){ if (e[i].id == d){ e[i].style.display = "inline"; } } } </script>
07. august 2003 - 13:54
#3
Her er en generisk funktion, der kan "toggle" rækker på en hvilken som helst tabel. Kald funktionen med tre parametre: 1. id på tabellen, 2. nummeret på den første række, der skal "toggles" (første række er nummer 0), samt 3. antal rækker i alt: <script> function toggleRows(strTableId,intStart,intNumber) { var oTbl = document.getElementById(strTableId); var oRow; if (oTbl == null) return; for (var i=intStart; i<=intStart+intNumber-1; i++) { oRow = oTbl.rows(i); if (oRow != null) oRow.style.display = (oRow.style.display == 'none') ? 'block' : 'none'; } } </script> I dit tilfælde kan du altså blot give tabellen et id (hvis ikke den har et i forvejen), finde nummeret på den første række, f.eks. 0, og kalde funktionen sådan her for vise/skjule de 3 rækker: <a href="#" onclick="toggleRows('tabel_id',0,3);">vis</a>
07. august 2003 - 14:18
#4
Grunken - dit eksempel er faktisk godt, der er bare det problem, at hvis man sætter <table></table> rundt om, så vil den ikke :/
07. august 2003 - 14:20
#5
Grunken - svar... Sådan ser det ud: </html> <script type="text/javascript"> function toggle(d){ e = document.getElementsByTagName('tr'); for(i=0;i<e.length;i++){ e[i].style.display = "none"; } for(i=0;i<e.length;i++){ if (e[i].id == d){ e[i].style.display = "inline"; } } } </script> <table> <tr id="a" style="display : none;"> <td>hej</td> </tr> <tr id="a" style="display : none;"> <td>dav</td> </tr> <tr id="a" style="display : none;"> <td>wee</td> </tr> <tr id="b" style="display : none;"> <td>s</td> </tr> <tr id="b" style="display : none;"> <td>s</td> </tr> <tr id="b" style="display : none;"> <td>sdh</td> </tr> </table> <a href="#" onclick="toggle('a');">vis</a> <a href="#" onclick="toggle('b');">vis</a> </html>
07. august 2003 - 14:27
#6
svar ;D fik du det hele til at du ?
07. august 2003 - 14:35
#7
Jeps, nu er der bare det problem, at når jeg folder én ud, må den gerne folde den anden sammen. Derfor prøver jeg lige: function toggle(d){ e = document.getElementsByTagName('tr'); for(i=0;i<e.length;i++){ e[i].style.display = "none"; } for(i=0;i<e.length;i++){ if (e[i].id == d){ e[i].style.display = "inline"; } } } Nu er der så bare det problem, at alle <TR> på hele siden skjuler sig - ikke så fedt. Nogen idé?
07. august 2003 - 14:47
#8
>>id _skal_ være unikt !-) -- så det er ugyldig kode at sætte id på flere elementer til det samme, men det kan da også hurtigt klares med id="a1", a2, a3 osv. -- og så f.eks.: if (e[i].id.indexOf(d)>-1){
07. august 2003 - 14:47
#9
hvad hedder de tr's du skal skjule, har de alle et unikt navn a,b,c o.s.v
07. august 2003 - 14:50
#10
Det bliver bare sådan: e = document.getElementsByTagName('tr'); for(i=0;i<e.length;i++){ if (e[i].id == 'ae' || e[i].id == 'fj'){ e[i].style.display = "none"; } } for(i=0;i<e.length;i++){ if (e[i].id == d){ e[i].style.display = "inline"; } } }
07. august 2003 - 15:00
#11
tak for points ;)
07. august 2003 - 15:07
#12
Selv tak :)
Vi tilbyder markedets bedste kurser inden for webudvikling