[GastForen Programmierung/Entwicklung JavaScript Tabellenzeilen ausblenden

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Tabellenzeilen ausblenden

Tömsken
Beiträge gesamt: 720

29. Dez 2004, 16:46
Beitrag # 1 von 6
Bewertung:
(3627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi.
Mein "Plan" ist, in Abhängigkeit eines Schalters eine oder mehrere Table Rows ein- und auszublenden via "display:none". Das klappt gut im IE 6 während Gecko aus der Seite Mus macht. Woran liegt's?

function showUserInfo(show) {
var tr = document.getElementsByTagName("tr");
for (var n=0; n<tr.length; n++) {
if (tr[n].id=='trperson') tr[n].style.display = (show ? 'block' : 'none');
}
}

Etwa so sieht die Tabelle aus:

<table width="100%" border="0" cellspacing="2" cellpadding="0">
<tr>
<td align="right" width="5%">Empf&auml;nger</td>
<td width="5">&nbsp;&nbsp;</td>
<td width="94%">
<select name="address" size="1" onChange="on_addressChanges()">
[gekürzt]
</select>
</td>
</tr>
<tr id="trperson" style="position:relative; display:none;">
<td></td>
<td></td>
<td>Diese Zeile wird ein-/ausgeblendet</td>
</tr>
[gekürzt]
</table>

Danke für Tipps...
Tom
X

Tabellenzeilen ausblenden

ganesh
Beiträge gesamt: 1981

29. Dez 2004, 17:42
Beitrag # 2 von 6
Beitrag ID: #132998
Bewertung:
(3627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich würde nur den TEXT ausblenden, nicht gleich eine ganze table row. Ausserdem würde ich eher getelementbyid verwenden, ungefähr so:


JS:
function isEven(x) { return (x%2)?false:true; }
function isOdd(x) { return !isEven(x); }

tCounter = 1;

function toggle(x) {

if(isOdd(tCounter)) {
document.getElementById(x).style.display='none';
return false;
}

if(isEven(tCounter)) {
document.getElementById(x).style.display='inline';
return false;
}

}

....


Link:
<a href="#" onClick="toggle('trperson'); tCounter++;">test</a>

....

<td><span id="trperson">Diese Zeile wird ein-/ausgeblendet</span></td>

(d.h. <tr> keine id zuweisen)


als Antwort auf: [#132989]

Tabellenzeilen ausblenden

Anonym
Beiträge gesamt: 22827

30. Dez 2004, 03:55
Beitrag # 3 von 6
Beitrag ID: #133092
Bewertung:
(3627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dank Dir.

Wenn man einzelne TDs, DIVs oder Texte ein-/ausblendet, gibt's keine Probleme mit Gecko. Nachdem ich meinen Code inzwischen mehrfach Korrekturgelesen und durch Validatoren geschickt habe, bin ich mir nun sicher, dass die Gecko-Engine einfach keine <TR>s "anständig" ein-/ausblenden kann.

Die TR-Variante wäre in meinem Fall aber schick gewesen, weil in der linken Spalte stets das Label steht, dann eine Platzhalter-Spalte und in der dritten das Control. Ein Schreibzugriff auf "display" hätte also gereicht anstelle von dreien. Nun ja... ;)

Bye, Tom


als Antwort auf: [#132989]

Tabellenzeilen ausblenden

SabineP
Beiträge gesamt: 7586

30. Dez 2004, 11:01
Beitrag # 4 von 6
Beitrag ID: #133136
Bewertung:
(3627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Tom,

hast Du es schon mal so versucht?

<html>
<head>
<style type="text/css"><!--
#reihe {visibility:visible;background-color:#ff0000}
--></style>

<script type="text/javascript">
<!--
function ein(id){
document.getElementById(id).style.visibility="visible";
}
function aus(id){
document.getElementById(id).style.visibility="hidden";
}
// -->
</script>
</head>

<body>

<a href="#" OnMouseOver="aus('reihe');return false;" OnMouseOut="ein('reihe');return false;">Reihe bei Mouseover über diesen Link ausblenden</a>

<TABLE border="1">
<TR id="reihe">
<TD>Reihe1</TD>
<TD>Reihe1</TD>
</TR>
<TR>
<TD>Reihe2</TD>
<TD>Reihe2</TD>
</TR>
</TABLE>

</body>
</html>

Gruß Sabine


als Antwort auf: [#132989]
(Dieser Beitrag wurde von SabineP am 30. Dez 2004, 11:13 geändert)

Tabellenzeilen ausblenden

Tömsken
Beiträge gesamt: 720

30. Dez 2004, 17:29
Beitrag # 5 von 6
Beitrag ID: #133213
Bewertung:
(3627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Salut Sabine,

die "visibility"-Variante klappt auch mit Gecko gut - hab's probiert. Allerdings tun sich dabei in meinem recht komplexen Formular ziemlich unschön große Lücken auf, so dass das leider kein gangbarer Weg ist.

Ich weiß nicht, was tun... auf 2 separate HTML-Seiten wollte ich eigendlich verzichten... mal schauen, mal probieren... ich pack' jetzt mal <DIV>s in die Tabelle...


als Antwort auf: [#132989]

Tabellenzeilen ausblenden

SabineP
Beiträge gesamt: 7586

30. Dez 2004, 17:45
Beitrag # 6 von 6
Beitrag ID: #133214
Bewertung:
(3627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es bleibt ja immer noch die Möglichkeit für jede Reihe eine extra Tabelle anzulegen.
Das Ausblenden einer ganzen Tabelle klappt sicher besser als das Ausblenden einer einzelnen Reihe.

Gruß Sabine


als Antwort auf: [#132989]
X