JavaScript Problem mit Ausgabe

martl92

Lieutenant
Registriert
Feb. 2009
Beiträge
598
Hallo,

ich habe folgendes Problem:
Ich möchte die Höhe einer tabelle von meiner Webseite mit Javascript auslesen, damit sich eine andere Tabelle dadurch ebenfalls vergrößert oder auch verkleinert, d.h. sie soll sich laufende, gerade welche Seite offen ist, dem Inhalt anpassen.

Folgendes Habe ich:
Die Tabelle die die Höhe vorgibt habe ich mit id=mytable gekennzeichnet.
Im Teil wo die andere Tabelle editiert wird habe ich folgendes JScript:
Code:
<script language="javascript">
var height = document.getElementById('mytable').style.height;
</script>
Dadurch sollte ich die Höhe bekommen! Oder???
Nun will ich hier die Höhe einbinden, bzw. die Variable "height" ausgeben:
HTML:
<table height="xx" align="center" border="0" cellpadding="0" cellspacing="0" width="855">
Wie kann ich bei height="" die variable ausgeben?

Die Struktur ist dann wie folgt:
HTML:
<script language="javascript">
	    var height = document.getElementById('mytable').style.height;
        </script>
<table height="xx" align="center" border="0" cellpadding="0" cellspacing="0" width="855">
    <tr>
		<td height="auto" background="Bilder/site/middle.gif" valign="bottom">
        <table width="681" border="0" cellspacing="0" cellpadding="0" align="center">
        <tr>
          <td width="681"><div align="right"><img src="Bilder/site/kirche.jpg" width="261" height="324" /></div></td>
        </tr>
      </table>

EDIT:
Die Höhe in die Variable schreiben funktioniert nicht, d.h. wenn ich das mit dem var height = ... angebe ist scheinbar ein fehler in dem Teil...
 
Zuletzt bearbeitet:
Versuchs mal so:
<script language="javascript">
<!--
function tabellenhoehe(){
var height = document.getElementById("mytable").clientHeight;
return height;
}
//-->
</script>

Dann noch auf deine neue Tabelle eine id setzen. Und mittels DOM darauf zugreifen und den Wert setzen. Kannste auch in dem JS machen.
Und Skriptreferenzierung (beim Aufruf) nicht vergessen.
 
Zuletzt bearbeitet:
Habe bisher leider nicht viel mit JS am Hut gehapt also habe ich noch eine frage:
Wie meinst du mit DOM draufzugreifen? Einfach nur document.getelementById("newtable") oder wie genau?

Code:
<script language="javascript">
<!--
function tabellenhoehe(){
var height = document.getElementById("mytable").height;
return height;
}
var hoehe = tabellenhoehe();
document.getElementById("spalte").height = hoehe;
//-->
</script>

Die Script Referenzierung mache ich beim Body Tag oder??? Mit Onload="javascript:tabellenhoehe()"?

Und wie gesagt tut mir leid wenn ich vielleicht dumme Fragen stelle ...!

mfg
 
Zuletzt bearbeitet:
Die Script Referenzierung mache ich beim Body Tag oder??? Mit Onload="javascript:tabellenhoehe()"?

Da gibts mehrere Möglichkeiten. Eine Übersicht findest du hier: http://www-user.tu-chemnitz.de/~lfe/selfhtml61/tda.htm

Wie meinst du mit DOM draufzugreifen? Einfach nur document.getelementById("newtable") oder wie genau?

Genau. Sowas nennt sich dann DOM-Scripting.

Alternativ kannst du auch mit CSS arbeiten und deine Breite mit einem Prozentwert festlegen. Z.B. wie hier: http://www.quackit.com/css/css_table_width.cfm

Das Problem ist dass dein Problem sich sehr vielfältig lösen lässt und es da nicht umbedingt ein richtig oder falsch gibt. Ich würde dir empfehlen dir erstmal ein Überblick über alles zu verschaffen und dann zu entscheiden. Denk immer dran: JavaScript muss nicht immer bei jedem Client aktiviert sein -> <noscript>-Tags nicht vergessen! CSS Informationen werden aber dazu im Gegensatz immer angewendet, auch wenn von Browser zu Browser die CSS Implementierung etwas variiert.
 
OK funzt jetzt perfekt und zwar mit folgender Funktion:

HTML:
function tabellenhoehe(){
var hoehe = document.getElementById('mytable').clientHeight;
if (hoehe < 600){document.getElementById('spalte').height = 620;}
else{document.getElementById('spalte').height = hoehe+150;}
}

und im Body tag habe ich onLoad=tabellenhoehe() reingeschrieben.

Danke für deine Hilfe Firestorm :):):)
 
Zurück
Oben