DIV: display: block und none

mschlegel

Erfahrenes Mitglied
Hi.

Ich habe so ein kleines Problem mit einer Tabelle (diese wird dynamisch mit einer JSP aufgebaut).
Die Tabelle erhällt nur dann eine extra Zeile (über alle Spalten) wenn für den aktuellen Eintrag eine Beschreibung vorhanden ist.
Java:
<tr onclick="show_hide_Layer('entry_<%= i %>')">
<td class="a_download_table_entry"><a href="<%= link %>"><%= title %></a><%= description != null ? "&nbsp;(Beschreibung)" : "" %></td>
<td class="a_download_table_entry" style="text-align: center;"><%= version != null ? version : "" %></td>
<td class="a_download_table_entry" style="text-align: right;"><%= size %></td>
<td class="a_download_table_entry" style="text-align: right;"><%= date %></td>
</tr>
<%
// Beschreibung nur hinzufügen, wenn vorhanden
if(description != null){
%>
	<tr id="entry_<%= i %>" style="display:none;">
	<td colspan="4" class="a_download_table_description"><%= description %></td>
</tr>
<% } %>

Es funktioniert auch, und sieht anfangs auch korrekt aus. Wenn ich nun aber diese Zeile öfters ein uns ausblende, so wird der Abstand zu der nachfolgenden Zeile immer größer.

Meine Javascript-Funktion sieht so aus
Javascript:
function show_hide_Layer(layerName) {
	var element = document.getElementById(layerName);
	if(element.style.display=="none")
		element.style.display="block";
	else
		element.style.display="none";
}

Kann mir jemand sagen wo hier mein Fehler liegt/liegen könnte?
Danke
 
Der Fehler liegt hier:
Code:
element.style.display="block";

<tr> ist von Hause aus kein Blockelement.

Weise stattdessen der display-Eigenschaft eine leere Zeichenkette zu, wenn du sie anzeigen willst.
 
Zurück