hanshuckebein: Höhe einer Zelle ermitteln

Hallo,

ich habe eine Tabelle

  
<table>  
  <tr>  
    <td id="zelle">  
       blabla blabla blabla blabla blabla blabla blabla blabla  
    </td>  
  </tr>  
</table>  

und möchte die Höhe in px herausfinden, die der Inhalt "blabla..." beansprucht (kann sich ändern wenn z.B. das Browserfenster schmaler wird).

Leider brachte meine Javascript-Abfrage

  
<script type="text/javascript">  
  alert(document.getElementById("zelle").height);  
</script>  

grundsätzlich als Ergebnis null (obwohl es die Eigenschaft "height" für tds gibt).

Wie geht es aber richtig?

Martin

  1. grundsätzlich als Ergebnis null (obwohl es die Eigenschaft "height" für tds gibt).

    nein - wer sagt das?

    eine elementreferenz besitzt für kein einziges html-element die eigenschaft "height" oder die methode "height()"

    Wie geht es aber richtig?

    getComputedStyle() ist eine methode, die du dir ggf mal ansehen könntest

    1. grundsätzlich als Ergebnis null (obwohl es die Eigenschaft "height" für tds gibt).
      nein - wer sagt das?

      unter anderem SELFHTML:
      http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#td

      eine elementreferenz besitzt für kein einziges html-element die eigenschaft "height" oder die methode "height()"

      s.o.

      Wie geht es aber richtig?
      getComputedStyle() ist eine methode, die du dir ggf mal ansehen könntest

      diese Methode scheint nur die zugewiesenen Werte zu erfassen, nicht aber dynamisch veränderte Werte

      Hallo Suit,
      leider komme ich mit getComputedStyle wohl nicht weiter. Trotzdem vielen Dank für deine Antwort.

      Martin

      1. sry, oben fehlt ein d ;) deine elementreferenz

        Wie geht es aber richtig?

        du hast height niemals gesetzt, ohne height zu haben kannst du es schlecht lesen

        document.getElementById('weee').height = '123';  
        alert(document.getElementById('weee').height);
        

        wird dir den wert liefern, den du möchtest - das hilft dir in dem fall aber nicht

        getComputedStyle() ist eine methode, die du dir ggf mal ansehen könntest

        diese Methode scheint nur die zugewiesenen Werte zu erfassen, nicht aber dynamisch veränderte Werte

        müsste ansich schon funktionieren, ansonsten ist wie molily sagt, offsetHeight eine möglichkeit mit der du die aktuelle höhe (berechnet) ausgeben kannst

      2. getComputedStyle() ist eine methode, die du dir ggf mal ansehen könntest

        diese Methode scheint nur die zugewiesenen Werte zu erfassen, nicht aber dynamisch veränderte Werte

        Das stimmt nicht, wie kommst du darauf?

        Verwechselst du getComputedStyle vielleicht mit dem style-Objekt? Für das gilt genau das, was du sagst: Man kann vorher gesetzte Inline-Styles auslesen, mehr nicht. Mit getComputedStyle kannst du hingegen den tatsächlichen aktuellen Wert auslesen, egal wie er zustande gekommen ist bzw. gesetzt wurde (er muss nicht gesetzt werden).

        Wie gesagt kannst du auch einfach offsetHeight verwenden, aber getComputedStyle plus currentStyle für den IE ginge genauso.

        Mathias