ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
428
428
EMPFEHLEN
-
28.09.07 21:01 #1
- Registriert seit
- Mar 2004
- Ort
- Tiefste Provinz
- Beiträge
- 304
Guten Abend,
ich würde gerne per JS einen ganzen Block von Tabellenzeilen auf einen Schlag ein- oder ausblenden. Ein Beispiel-Skript sag mehr als 1000 Worte:
So funktioniert das aber offensichtlich nicht. Ich möchte allerdings vermeiden, allen <tr>s Namen geben zu müssen um sie dann in einer Schleife auszublenden Das obige Skript ist nur ein stark vereinfachtes Beispiel, das echte ist viel komplexer und in eine PHP-MySQL-Template-Engine-Umgebung eingebettet und es gibt natürlich auch mehrere Blöcke die ein-/ausgeblendet werden sollen.HTML-Code:<script language="JavaScript" type="text/javascript"> function showHide(id) { var dasDiv = document.getElementById(id); if (dasDiv.style.display == 'block') { dasDiv.style.display = 'none'; } else { dasDiv.style.display = 'block'; } } </script> <a href="javascript:void showHide('xy');"> Ein-/Ausblenden </a> <table> <tr> <td>Hallo</td> <td>Welt</td> </tr> <div id="xy" style="display:block"> <!-- die Zeilen von hier --> <tr> <td>Hello</td> <td>World</td> </tr> <tr> <td>Hola</td> <td>Mundo</td> </tr> <tr> <td>Bonjour</td> <td>Monde</td> </tr> </div> <!-- bis hier sollen ausblendbar sein --> <tr> <td>Ciao</td> <td>Mondo</td> </tr> </table>
Jemand 'ne Idee?Martin
-
28.09.07 21:10 #2
Das liegt daran, dass die Tabelle das <div> nicht als Elternstruktur anerkennt.
So funktioniert es:
HTML-Code:<script language="JavaScript" type="text/javascript"> function showHide(id) { var dasDiv = document.getElementById(id); if (dasDiv.style.display == 'block') { dasDiv.style.display = 'none'; } else { dasDiv.style.display = 'block'; } } </script> <a href="javascript: showHide('xy');"> Ein-/Ausblenden </a> <table> <tr> <td>Hallo</td> <td>Welt</td> </tr> </table> <div id="xy" style="display:block"> <!-- die Zeilen von hier --> <table> <tr> <td>Hello</td> <td>World</td> </tr> <tr> <td>Hola</td> <td>Mundo</td> </tr> <tr> <td>Bonjour</td> <td>Monde</td> </tr> </table> </div> <!-- bis hier sollen ausblendbar sein --> <table> <tr> <td>Ciao</td> <td>Mondo</td> </tr> </table>
KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
28.09.07 21:19 #3
- Registriert seit
- Mar 2004
- Ort
- Tiefste Provinz
- Beiträge
- 304
Ja, danke erstmal, das leuchtet ein.
Allerdings krieg ich dann Ärger mit den ganzen Styles, die Tabelle hat in echt Ränder und Spacing und Padding und das alles. Klar kann man das trotzdem hinkriegen, etwa mir Sonderbehandlung der Bottom/Top-Styles, das wird aber in der eh schon komplexen Struktur eine riesen Pfriemelei.
Gibt es noch Hoffnung auf eine simple Lösung?Martin
-
28.09.07 23:38 #4
- Registriert seit
- Mar 2004
- Ort
- Tiefste Provinz
- Beiträge
- 304
Ha! Ich hab's.
Beim Stichwort "Elternstruktur" ist ein Groschen gefallen - da war doch noch was zwischen <table> und <tr>, das nie irgend jemand braucht: <tbody>. So funktioniert's:
Besten Dank an den Stichwortgeber!HTML-Code:<script language="JavaScript" type="text/javascript"> function showHide(id) { var tb = document.getElementById(id); if (tb.style.display == 'none') { tb.style.display = 'block'; } else { tb.style.display = 'none'; } } </script> <a href="javascript:void showHide('x');">X an/aus</a> <br> <a href="javascript:void showHide('y');">Y an/aus</a> <table> <tr> <td>Hallo</td> <td>Welt</td> </tr> <tbody id="x"> <tr> <td>Tschüss</td> <td>Welt</td> </tr> <tr> <td>Adios</td> <td>Mundo</td> </tr> <tr> <td>Au revoir</td> <td>Monde</td> </tr> </tbody> <tr> <td>Hello</td> <td>World</td> </tr> <tbody id="y"> <tr> <td>Hello</td> <td>Moon</td> </tr> <tr> <td>Hola</td> <td>Luna</td> </tr> <tr> <td>Bonjour</td> <td>Lune</td> </tr> </tbody> <tr> <td>Ciao</td> <td>Mondo</td> </tr> </table>
Martin
-
Hi,
eine andere Möglichkeit wäre, Zeilen über ihren Index (beginnend bei Null) aus-/einzublenden.
CiaoCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
<html> <head> <title>www.tutorials.de</title> <meta name="author" content="Quaese"> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> <!-- function showHide(strID, intStart, intEnde){ var arrRows = document.getElementById(strID).rows; for(var i=intStart; i<=intEnde; i++){ if(arrRows[i].style.display == "none"){ arrRows[i].style.display = ""; }else{ arrRows[i].style.display = "none"; } } } //--> </script> </head> <body> <a href="javascript:void showHide('tableID', 1, 3);"> Ein-/Ausblenden </a> <table id="tableID"> <tr> <td>Hallo</td> <td>Welt</td> </tr> <tr> <td>Hello</td> <td>World</td> </tr> <tr> <td>Hola</td> <td>Mundo</td> </tr> <tr> <td>Bonjour</td> <td>Monde</td> </tr> <tr> <td>Ciao</td> <td>Mondo</td> </tr> </table> </body> </html>
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
Ähnliche Themen
-
TListView Zeilen ausblenden
Von delphi beginner im Forum Delphi, Kylix, PascalAntworten: 1Letzter Beitrag: 26.01.10, 12:07 -
Tabellen Zeilen ein und ausblenden
Von lernen.2007 im Forum Javascript & AjaxAntworten: 22Letzter Beitrag: 13.05.08, 00:18 -
Zeilen ausblenden
Von al-Maghribi im Forum PHPAntworten: 3Letzter Beitrag: 09.04.08, 12:03 -
Zeilen in JTable ausblenden
Von Leyja im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 06.03.08, 23:52 -
[C++ MFC] Zeilen in CListCtrl ausblenden
Von sisela im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 05.01.05, 13:49





Zitieren

Login





