nucle: Problem beim ausblenden eines Tabellenteiles

Hi, also ich habe vor, von einer Tabelle einen bestimmten Teil auszublenden. Zb <tr><td></td></tr>
Um das zu realisieren verwende ich noch <tbody> und weise dem eine id zu. Wenn ich jetzt auf einen Link klicke wird das JS aufgerufen und funktioniert auch. Nur wenn ich das ganze in Opera / Firefox ausprobiere sind alle Tabellen durcheinander.
Kann mir jemand helfen?

Hier mein Code:

//////////////////////// JSCRIPT ////////////////////////////////////

function toggleHideShow(id)
{
 if(id != "")
 {
  var oItem = document.getElementById(id);

if(oItem != null)
  {
   if(oItem.style.display == "" || oItem.style.display == 'none')
   {
      oItem.style.display = "block";
   } else {
    oItem.style.display = "none";
   }
  }
  return true;
 }
}

////////////////////////// HTML ////////////////////////////////////

<a onclick="toggleHideShow('unreg_table1')">Tabelle 1</a>

<TABLE cellpadding="0" width="100%"> >
  <THEAD>
    <TR>
      <TH SCOPE=col>Name</TH>
      <TH SCOPE=col>Symbol</TH>
      <TH SCOPE=col>Quantity</TH>
    </TR>
  </THEAD>
  <TBODY id="unreg_table1" style="display:none;" >
    <TR>
      <TD SCOPE=row>meter</TD>
      <TD>m</TD>
      <TD>length</TD>
    </TR>
 </TBODY>
 <TBODY>
    <TR>
      <TD SCOPE=row>kilogram</TD>
      <TD>kg</TD>
      <TD>mass</TD>
    </TR>
  </TBODY>
</table>

  1. morgens,

    Um das zu realisieren verwende ich noch <tbody> und weise dem eine id zu.

    <tbody> ist nach wie vor valides (X)HTML. Nur kann eine Tabelle eben nur _einen_ Tabellenkörper haben, du gibst ihr aber _zwei_. Am besten liest du dir http://de.selfhtml.org/html/tabellen/nicht_visuell.htm#referenzen nochmal genau durch.

    Grüße aus Berlin

    Christoph S.

    1. Hi,

      <tbody> ist nach wie vor valides (X)HTML. Nur kann eine Tabelle eben nur _einen_ Tabellenkörper haben, du gibst ihr aber _zwei_. Am besten liest du dir http://de.selfhtml.org/html/tabellen/nicht_visuell.htm#referenzen nochmal genau durch.

      und was sollte er dort finden? Vielleicht den Link auf http://de.selfhtml.org/html/tabellen/aufbau.htm#kopf_koerper_fuss, in dem Deine Behauptung widerlegt wird? Und nein, Selfhtml hat hier keinen Bug, wie Du unter http://www.w3.org/TR/html401/struct/tables.html#h-11.2.3 nachlesen kannst.

      freundliche Grüße
      Ingo

      1. Hi,

        <tbody> ist nach wie vor valides (X)HTML. Nur kann eine Tabelle eben nur _einen_ Tabellenkörper haben, du gibst ihr aber _zwei_. Am besten liest du dir http://de.selfhtml.org/html/tabellen/nicht_visuell.htm#referenzen nochmal genau durch.

        und was sollte er dort finden? Vielleicht den Link auf http://de.selfhtml.org/html/tabellen/aufbau.htm#kopf_koerper_fuss, in dem Deine Behauptung widerlegt wird? Und nein, Selfhtml hat hier keinen Bug, wie Du unter http://www.w3.org/TR/html401/struct/tables.html#h-11.2.3 nachlesen kannst.

        freundliche Grüße
        Ingo

        @Christoph Schnauß
        siehe W3C
        oder links von Ingo Turski

        @Ingo Turski
        Stimmt nach W3C is es Standard. Die wenigsten wissen das es das überhaupt gibt.

        Aber weiß jemand trotzdem eine Lösung ?

        mfg nucle

        1. Hi,

          Aber weiß jemand trotzdem eine Lösung ?

          vielleicht reicht es bereits, wenn Du die für tbody passende display-Eigenschaft wählst - die eben ncht block ist.

          freundliche Grüße
          Ingo

          1. vielleicht reicht es bereits, wenn Du die für tbody passende display-Eigenschaft wählst - die eben ncht block ist.

            Stimmt. Mit der display-Eigenschaft: table-row statt block gehts wunderbar im Firefox. Aber dann halt nicht mehr im IE.(kennt er noch nicht)

            Gruss Oliver

            1. Hi,

              Stimmt. Mit der display-Eigenschaft: table-row statt block gehts wunderbar im Firefox.

              obwohl table-row-group richtiger wäre...

              Aber dann halt nicht mehr im IE.(kennt er noch nicht)

              dann sollte er es genauso ignorieren wie Firefox ''. Setze doch beides hintereinander oder verwende eine CSS-Weiche.

              freundliche Grüße
              Ingo

              1. Hi,

                Stimmt. Mit der display-Eigenschaft: table-row statt block gehts wunderbar im Firefox.
                obwohl table-row-group richtiger wäre...

                Aber dann halt nicht mehr im IE.(kennt er noch nicht)
                dann sollte er es genauso ignorieren wie Firefox ''. Setze doch beides hintereinander oder verwende eine CSS-Weiche.

                freundliche Grüße
                Ingo

                Hi, dabke für die Hilfe.

                Also ich hab ne lösung gefunden und zwar war das inner oder block daran schuld

                if(oItem != null)
                  {
                   if(oItem.style.display == 'none')
                   {
                      oItem.style.display = "";
                   } else {
                    oItem.style.display = "none";
                   }
                  }
                  return true;
                 }

                habs dann einfach so gemacht und jetzt geht es in Firefox, Internet Explorer, Netscape und Opera

                Thx für eure Hilfe

                mfg nucle

      2. Hi,

        und was sollte er dort finden? Vielleicht den Link auf http://de.selfhtml.org/html/tabellen/aufbau.htm#kopf_koerper_fuss, in dem Deine Behauptung widerlegt wird? Und nein, Selfhtml hat hier keinen Bug,

        Ansichtssache.
        Bezogen auf mehrere tbody stimmt das.

        Bezogen auf das "Beachten Sie" am Ende des Abschnitts:

        Wenn Sie mit den Elementen thead, tfoot und tbody arbeiten, müssen Sie immer alle drei Elemente verwenden [...]

        hat Selfhtml hier schon einen Bug, denn wie man an
        <!ELEMENT TABLE - -
             (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
        leicht erkennen kann, müssen nicht alle 3 Elemente verwendet werden.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Hi,

          Wenn Sie mit den Elementen thead, tfoot und tbody arbeiten, müssen Sie immer alle drei Elemente verwenden [...]

          hat Selfhtml hier schon einen Bug, denn wie man an
          <!ELEMENT TABLE - -
               (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
          leicht erkennen kann, müssen nicht alle 3 Elemente verwendet werden.

          stimmt; ist auch noch nicht korrigiert worden. Wäre denn:

          » Wenn Sie die Elemente thead oder tfoot verwenden, müssen Sie auch das Element tbody angeben. Hierbei ist die Reihenfolge thead -> tfoot -> tbody einzuhalten. Die Elemente thead und tfoot dürfen pro Tabelle nur einmal vorkommen, das tbody-Element auch mehrfach. «

          korrekt und verständlich genug?

          freundliche Grüße
          Ingo