majaao: DIV heigth bestimmen

Hier handelt es sich wahrscheinlich mal wieder um einen typischen Newcomer Fehler ....

Ich möchte die Höhe einer Textarea an den Inhalt des Textes anpassen, der ediert werden soll. Es soll also in einem ersten Schritt die Höhe des DIVs mit dem vorhandenen Text ausgelesen und der Wert in einem zweiten Schritt an das DIV mit der Textarea übergeben werden. Mit einem statischen Wert funktioniert das auch, aber mit der Variablen nicht:

<!-- Text -->
<div id="text1749"> hier kommt der Text  </div>

<!-- Text Edit -->
<div id="textArea1749"><textarea ... > hier kommt der Text </textarea></div>

<script language="JavaScript" type="text/JavaScript">
var hoeheText1749 = document.getElementById("text1749").style.height;
document.getElementById("textArea1749").style.height = hoeheText1749;
</script>

Was mache ich falsch ?
M.

  1. Kannst du nicht einfach das "style" weglassen?

    also

    var hoeheText1749 = document.getElementById("text1749").height;
    document.getElementById("textArea1749").height = hoeheText1749;

    ?

    Jonathan

    1. Kannst du nicht einfach das "style" weglassen?

      so funktioniert gar nichts!
      wie gesagt, wenn ich einen statischen Wert eingebe ("120px"),
      also:
      <script type="text/JavaScript">
      var hoeheText1749 = "120px";
      document.getElementById("textArea1749").height = hoeheText1749;
      </script>

      dann klappt es ja, nur mit der Variablen nicht ......

      :-(

      1. Du musst vermutlich mit dem abfragen der Hoohe warten, bis die Seite vollständig geladen ist. Ansonsten sind vielleicht Fehlermeldungen in der Javascript-konsole hinfreich.

      2. Kannst du nicht einfach das "style" weglassen?

        so funktioniert gar nichts!

        oh jetzt habe ich es selbst weggelassen,

        nicht:

        document.getElementById("textArea1749").height = hoeheText1749;

        sondern:
        document.getElementById("textArea1749").style.height = hoeheText1749;

        trotzdem:
        wie wird die Variable korrekt weitergeben ??

  2. Hallo majaao,

    <!-- Text -->
    <div id="text1749"> hier kommt der Text  </div>

    [...]

    var hoeheText1749 = document.getElementById("text1749").style.height;

    Was mache ich falsch ?

    Siehst Du in Deinem DIV eine CSS Angabe, die ein height enthält? Nein, warum glaubst Du, das Du dann daruf zugreifen kannst?

    Mit freundlichem Gruß
    Micha

    1. Siehst Du in Deinem DIV eine CSS Angabe, die ein height enthält? Nein, warum glaubst Du, das Du dann daruf zugreifen kannst?

      var hoeheText1749 = document.getElementById("text1749").style.height;

      ich dachte, damit wird die aktuelle Höhe eines DIVs ermittelt, also nicht die Höhe, die statisch über CSS festgelegt wird, sondern die Höhe, wie sie sich abhängig von der jeweiligen Textmenge ergibt.  Ist dem nicht so?

      In einem Array vom mehreren Divs ist diese Höhe unterschiedlich, und genau darum geht es mir: ich möchte einer Textarea, in der ich einen Textabschnitt ändere, dieselbe Höhe zuweisen, die das nicht edierbare DIV dieses Abschnittes hat ( der erste Abschnitt hat 12 Zeilen, der zweite Abschnitt hat  2 Zeilen usw usw .. )

      Vielleicht drücke ich mich auch ein wenig umständlich aus .....

      M.

      1. Hallo majaao,

        ich dachte, damit wird die aktuelle Höhe eines DIVs ermittelt, also nicht die Höhe, die statisch über CSS festgelegt wird, sondern die Höhe, wie sie sich abhängig von der jeweiligen Textmenge ergibt.  Ist dem nicht so?

        Nein, dem ist (leider) nicht so. Schau Dir die Style-Eigenschaften an, dann wird es klarer - hoffe ich.

        Zu einem ähnlichem Problem gabs kürzlich einen Lösungsansatz, den Du Dir vll mal durchlesen solltest.

        Mit freundlichem Gruß
        Micha

  3. Hi,

    Es soll also in einem ersten Schritt die Höhe des DIVs mit dem vorhandenen Text ausgelesen

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
            "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
    <html><head></head><body>
    <div id="x1">test<br><br><br><br><br><br><br><br><br><br>test</div>
    <script type="text/javascript">
    alert(document.getElementById("x1").offsetHeight)
    </script>
    </body></html>

    Gruesse, Joachim

    --
    Am Ende wird alles gut.