tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
22
ZUGRIFFE
871
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    lernen.2007 lernen.2007 ist offline Mitglied Platin
    Registriert seit
    Mar 2005
    Beiträge
    743
    Hallo,

    ich will folgendes erreichen:

    wenn ich in einer Link clicke dann öffnet alle tabellen zeilen die darunter stehen, wenn ich noch einmal clicke dann schließt wieder diese zeilen. Wie kann ich so etwas in Java Script erreichen?

    Ich habe mit so etwas ausprobiert:

    <script type="text/javascript" language="JavaScript">
    function toggleDivVisibility(_div) {
    if (_div.style.display=="none") {
    _div.style.display="block";
    } else {
    _div.style.display="none";
    }
    }
    </script>

    Aber wie soll diese Funktion wissen, welche Zeilen ein oder ausgeblendet werden?

    Danke
     

  2. #2
    KD3 KD3 ist offline
    Registriert seit
    Apr 2007
    Beiträge
    453
    Vielleicht hilft dir das hier:

    HTML-Code:
    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">
    
    function toggle(id) {
    var a = document.getElementById(id);
    
    if(a.style.visibility == "hidden") { a.style.visibility = "visible"; } else {a.style.visibility = "hidden";}
    
    }
    </script>
    </head>
    <body>
    <div id="zeile" OnClick="toggle(this.id);">Text</div>
    </body></html>
     

  3. #3
    Maik Tutorials.de Gastzugang
    Hi,

    ansonsten schau dir mal Expandable "Detail" Table Rows an.
     

  4. #4
    lernen.2007 lernen.2007 ist offline Mitglied Platin
    Registriert seit
    Mar 2005
    Beiträge
    743
    Hallo,

    kannst du bitte auch ein Beispiel mit Tabellen machen? Ich will einfach in ein Link clicken dann soll die Zeilen ausgeblendet werden.

    Danke
     

  5. #5
    warcraft9105 warcraft9105 ist offline Mitglied Gold
    Registriert seit
    Feb 2008
    Ort
    Pocking (Bayern)
    Beiträge
    207
     
    Guck mal auf Deiner Tastatur, da finden sich 2 Shift-Tasten. Die sind nicht dazu da ignoriert zu werden.;)

  6. #6
    lernen.2007 lernen.2007 ist offline Mitglied Platin
    Registriert seit
    Mar 2005
    Beiträge
    743
    Hallo,

    ich habe es soweit bekommen:

    Code :
    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
    
    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">
     
    function toggle(id) {
    var a = document.getElementById(id);
     
    if(a.style.visibility == "hidden") { a.style.visibility = "visible"; } else {a.style.visibility = "hidden";}
     
    }
    </script>
    </head>
    <body>
     
     
    <div id="zeile" OnClick="toggle(this.id);">Text
    <table border="1">
      <tr>
        <th>Berlin</th>
        <th>Hamburg</th>
        <th>M&uuml;nchen</th>
      </tr>
      <tr>
        <td>Milj&ouml;h</td>
        <td>Kiez</td>
        <td>Bierdampf</td>
      </tr>
      <tr>
        <td>Buletten</td>
        <td>Frikadellen</td>
        <td>Fleischpflanzerl</td>
      </tr>
    </table>
    </body>
    </html>

    Aber Text sollte als Link erscheinen und wenn man drauf drückt dann sollte tabelle eingeblendet werden. Und wenn man nocheinmal drauf clickt dann sollte die Tabelle ausgeblendet werden. Aber ich kriege es irgendwie nicht hin. Text wird nicht als Hyperlink dargestellt und es wird auch ausgeblendet. Bitte hilft mir.
     

  7. #7
    warcraft9105 warcraft9105 ist offline Mitglied Gold
    Registriert seit
    Feb 2008
    Ort
    Pocking (Bayern)
    Beiträge
    207
    So gehts:
    HTML-Code:
    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">
    
    function toggle(id) {
    var a = document.getElementById(id);
    
    if(a.style.display == "") 
    {
        a.style.display = "none"; 
    } 
    else 
    {
        a.style.display = "";
    }
    
    }
    </script>
    </head>
    <body>
    
    
    <a href="#" OnClick="toggle('zeile');">Text</a>
    <div id="zeile">
    <table border="1">
      <tr>
        <th>Berlin</th>
        <th>Hamburg</th>
        <th>M&uuml;nchen</th>
      </tr>
      <tr>
        <td>Milj&ouml;h</td>
        <td>Kiez</td>
        <td>Bierdampf</td>
      </tr>
      <tr>
        <td>Buletten</td>
        <td>Frikadellen</td>
        <td>Fleischpflanzerl</td>
      </tr>
    </table>
    </body>
    </html>
     
    Guck mal auf Deiner Tastatur, da finden sich 2 Shift-Tasten. Die sind nicht dazu da ignoriert zu werden.;)

  8. #8
    lernen.2007 lernen.2007 ist offline Mitglied Platin
    Registriert seit
    Mar 2005
    Beiträge
    743
    Hallo zuerst danke,

    warum geht es denn folgende Code nicht?

    Code :
    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
    
    <script type="text/javascript" language="JavaScript">
              
              function toggle(id) {
                var a = document.getElementById(id);
     
                if(a.style.display == "") 
                {
                    a.style.display = "none"; 
                } 
                else 
                {
                    a.style.display = "";
                }
     
            }
            </script><table border="0" cellspacing="0" width="100%">
    <colgroup>
    <col width="10%">
    <col width="20%">
    <col width="50%">
    <col width="10%">
    <col width="10%">
    </colgroup>
    <tr valign="top" class="unittests-sectionheader" align="left">
    <th colspan="2">Name</th><th>Kommentar</th><th>Status</th><th nowrap="nowrap">Time(s)</th>
    </tr>
    <tr class="unittests-title">
    <td colspan="5"><a href="#" OnClick="toggle('zeile');">.Testen</a></td>
    </tr>
    <div id="zeile">
    <tr class="unittests-data">
    <td>&nbsp;</td><td>testeMal</td><td></td><td>Success</td><td>6.670</td>
    </tr>
    </div>
    <tr class="unittests-data">
    <td colspan="2">&nbsp;
          </td><td>&nbsp;
          </td><td>&nbsp;
          </td><td>&nbsp;</td>
    </tr>
    <tr>
    <td colspan="5">
            &nbsp;
          </td>
    </tr>
    </table>

    Es funktioniert irgendwie nicht. Warum?
     

  9. #9
    Maik Tutorials.de Gastzugang
    Hi,

    das div-Element ist kein Nachbarelement des tr-Elements, und hat somit an dieser Stelle des Quelltextes nichts zu suchen.

    Lösung: Entferne es vollständig aus dem Markup und ruf stattdessen die ID #zeile direkt in der Tabellenzeile auf.
     

  10. #10
    lernen.2007 lernen.2007 ist offline Mitglied Platin
    Registriert seit
    Mar 2005
    Beiträge
    743
    Hallo,

    ich habe wie folgt geändert, aber es geht immer noch nicht:

    Code :
    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
    
    <script type="text/javascript" language="JavaScript">
              
               function toggle(id) {
                var a = document.getElementById(id);
     
                if(a.style.display == "") 
                {
                    a.style.display = "none"; 
                } 
                else 
                {
                    a.style.display = "";
                }
     
            }
            </script><table border="0" cellspacing="0" width="100%">
    <colgroup>
    <col width="10%">
    <col width="20%">
    <col width="50%">
    <col width="10%">
    <col width="10%">
    </colgroup>
    <tr valign="top" class="unittests-sectionheader" align="left">
    <th colspan="2">Name</th><th>Kommentar</th><th>Status</th><th nowrap="nowrap">Time(s)</th>
    </tr>
    <tr class="unittests-title">
    <td colspan="5"><a href="#" OnClick="toggle('zeile');">.TestMenu</a></td>
    </tr>
    <tr id="zeile" class="unittests-data">
    <td>&nbsp;</td><td>TestMenus</td><td></td><td>Success</td><td>46.415</td>
    </tr>
    <tr id="zeile" class="unittests-data" bgcolor="#EEEEEE">
    <td>&nbsp;</td><td>MenuTest</td><td></td><td>Success</td><td>31.945</td>
    </tr>
    <tr id="zeile" class="unittests-data">
    <td colspan="2">&nbsp;
          </td><td>&nbsp;
          </td><td>&nbsp;
          </td><td>&nbsp;</td>
    </tr>
    <tr id="zeile">
    <td colspan="5">
            &nbsp;
          </td>
    </tr>
    </table>
     

  11. #11
    Maik Tutorials.de Gastzugang
    Entgegen deinem letzten Quellcode rufst du die ID nun in mehreren Zeilen auf, was aber auch nicht regelkonform ist, da eine ID im HTML-Dokument eindeutig sein muss, sprich darin nicht mehrmals vergeben werden darf.

    Folglich blenden die Browser auch nur die erstgenannte Zeile mit der ID #zeile ein und aus.
     

  12. #12
    lernen.2007 lernen.2007 ist offline Mitglied Platin
    Registriert seit
    Mar 2005
    Beiträge
    743
    Hallo,

    wie kann ich denn oberen Code so strukturieren, dass es funktioniert? Hilf mir bitte.
     

  13. #13
    Maik Tutorials.de Gastzugang
    Indem du die Tabelle an dieser Stelle verschachtelst, also in der Tabellenzelle td dieser Tabellenzeile eine weitere Tabelle einbettest, die die Zeilen (ohne ID!) enthält, die ein- und ausgeblendet werden sollen.
     

  14. #14
    Maik Tutorials.de Gastzugang
    Das Ganze würde dann in der Praxis so aussehen:

    Code :
    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
    
    <table border="0" cellspacing="0" width="100%">
           <colgroup>
               <col width="10%">
               <col width="20%">
               <col width="50%">
               <col width="10%">
               <col width="10%">
           </colgroup>
           <tr valign="top" class="unittests-sectionheader" align="left">
               <th colspan="2">Name</th><th>Kommentar</th><th>Status</th><th nowrap="nowrap">Time(s)</th>
           </tr>
           <tr class="unittests-title">
               <td colspan="5"><a href="#" onclick="toggle('zeile');">.TestMenu</a></td>
           </tr>
           [b]<tr id="zeile">
               <td colspan="5">
                   <table width="100%">
                          <tr class="unittests-data">
                              <td>&nbsp;</td><td>TestMenus</td><td>&nbsp;</td><td>Success</td><td>46.415</td>
                          </tr>
                          <tr class="unittests-data" bgcolor="#EEEEEE">
                              <td>&nbsp;</td><td>MenuTest</td><td>&nbsp;</td><td>Success</td><td>31.945</td>
                          </tr>
                          <tr class="unittests-data">
                              <td colspan="2">&nbsp;</td>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                          </tr>
                          <tr>
                              <td colspan="5">&nbsp;</td>
                          </tr>
                   </table>
               </td>
           </tr>[/b]
    </table>
    P.S. Wenn du dich meiner eingangs des Themas empfohlenen Technik bedienst, sind diese Um- und Ausbaumaßnahmen im bestehenden HTML-Code überhaupt nicht erforderlich
     

  15. #15
    lernen.2007 lernen.2007 ist offline Mitglied Platin
    Registriert seit
    Mar 2005
    Beiträge
    743
    Hallo,

    wenn ich auf den Link clicke dann wird die untere Zeilen ineinander bzw. zusammen geschoben:

    Code :
    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
    
    <script type="text/javascript" language="JavaScript">
              
              function toggleDivVisibility(_div) {
                if (_div.style.display=="none") {
                  _div.style.display="block";
                } else {
                  _div.style.display="none";
                }
              }
            </script><table border="0" cellspacing="0" width="100%">
    <colgroup>
    <col width="10%">
    <col width="20%">
    <col width="50%">
    <col width="10%">
    <col width="10%">
    </colgroup>
    <tr valign="top" class="unittests-sectionheader" align="left">
    <th colspan="2">Name</th><th>Comment</th><th>Status</th><th nowrap="nowrap">Time(s)</th>
    </tr>
    <tr class="unittests-title">
    <td colspan="5"><a href="#" onClick="toggleDivVisibility(document.getElementById('.HauptMenu'))">.HauptMenu</a></td>
    </tr>
    <table id=".HauptMenu" border="0" cellspacing="0" width="100%">
    <colgroup>
    <col width="10%">
    <col width="20%">
    <col width="50%">
    <col width="10%">
    <col width="10%">
    </colgroup>
    <tr class="unittests-data">
    <td>&nbsp;</td><td>TestMenu1</td><td></td><td>Success</td><td>46.415</td>
    </tr>
    <tr class="unittests-data" bgcolor="#EEEEEE">
    <td>&nbsp;</td><td>TestMenu2</td><td></td><td>Success</td><td>31.945</td>
    </tr>
    <tr class="unittests-data">
    <td colspan="2">&nbsp;
          </td><td>&nbsp;
          </td><td>&nbsp;
          </td><td>&nbsp;</td>
    </tr>
    <tr>
    <td colspan="5">
            &nbsp;
          </td>
    </tr>
    </table>
    </table>

    Ich weiß nicht woran es liegt.
     

Ähnliche Themen

  1. TListView Zeilen ausblenden
    Von delphi beginner im Forum Delphi, Kylix, Pascal
    Antworten: 1
    Letzter Beitrag: 26.01.10, 12:07
  2. Zeilen ausblenden
    Von al-Maghribi im Forum PHP
    Antworten: 3
    Letzter Beitrag: 09.04.08, 12:03
  3. Zeilen in JTable ausblenden
    Von Leyja im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 5
    Letzter Beitrag: 06.03.08, 23:52
  4. Zeilen en-bloc ein/ausblenden
    Von ManicMarble im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 28.09.07, 23:46
  5. [C++ MFC] Zeilen in CListCtrl ausblenden
    Von sisela im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 05.01.05, 13:49