Problem beim ausblenden eines Tabellenteiles
nucle
- javascript
0 Christoph Schnauß0 Ingo Turski0 nucle0 Ingo Turski0 Olli0 Ingo Turski0 nucle
0 MudGuard
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?
//////////////////////// 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>
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.
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
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
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
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
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,
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
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
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