Tolwin: Einzelnes <td> ausblenden

Hallo Forum,
ich versuche gerade ein einzelnes <td> per <div>Tag auszublenden.
Versuche es wie folgt:
function show(div){
    document.all[div].style.visibility="visible";
}

function hide(div){
 document.all[div].style.visibility="hidden";
}
--------
<style type="text/css">
.ebene {position:absolute;
top:100px;
left:200px;
visibility:hidden;
}
---------
<div id="m1" class="ebene">
<td bgcolor="#33CC00"><b><font color="#FFFFFF">Hinweise</font></b></td></div>
---------
<a href="blabla.zip" onmouseover="show('m1');" onmouseout="showFilemtime('')";>einblenden</a>

<a href="blub.zip" onmouseover="hide('m1');" onmouseout="showFilemtime('')";>ausblenden</a>
---------
Leider funktioniert das nicht und so langsam komme ich zu dem Ergebnis dass man einzelne TD nicht ausblenden kann, sondern nur TR oder TABLE. Hätte jemand einen Tipp oder ne Alternative?

Danke und Gruß
Tolwin

  1. Hallo Tolwin,

    document.all[div].style.visibility="visible";

    du solltest das alte IE-only Zeugs vergessen und dich mit den DOM-Methoden vertraut machen, z.B. mit http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id

    <div id="m1" class="ebene">
    <td bgcolor="#33CC00"><b><font color="#FFFFFF">Hinweise</font></b></td></div>

    das ist ungültiges html: <tr><div><td> ... </td></div></tr>. Stell entweder das DIV in das TD oder gib die ID dem TD.

    Gruß, Jürgen

    1. Hallo Jürgen,

      danke für die schnelle Antwort.
      Habs eben mal versucht:

      function show (value) {
        document.getElementById("td1").visibility = value;
      }
      ------
      <td id="td1" bgcolor="#33CC00"><b><font color="#FFFFFF">Hinweise</font></b></td>
      ------
      <a href="bla.zip" onmouseover="show('td1');" onmouseout="showFilemtime('')";>TEST</a>
      ------
      Noch mal zur Erklärung. Über diesen Link (TEST) biete ich eine Datei zum Download an. In einem TD sollen bei onmouseover das TD und das Dateidatum eingeblendet werden.

      Hat leider nicht geklappt....

      Gruß
      Tolwin

      1. hi

        function show (value) {
          document.getElementById("td1").visibility = value;
        }

        <td id="td1" bgcolor="#33CC00"><b><font color="#FFFFFF">Hinweise</font></b></td>

        <a href="bla.zip" onmouseover="show('td1');" onmouseout="showFilemtime('')";>TEST</a>

        Hat leider nicht geklappt....

        Kann auch nicht klappen. Du übergibst der Variable "value" den Wert "td1" und wisst den nachher der eigenschaft "visibility" zu. Was erwartest du?

        so long
        Ole
        (8-)>

        --
        Stickstoff eignet sich nicht für Handarbeiten.
      2. Hallo Tolwin,

        danke für die schnelle Antwort.

        gern geschehen.

        function show (value) {
          document.getElementById("td1").visibility = value;
        }

        siehe Antwort von Ole.

        Ich habe gerade das hier ausprobiert:

        <a href="#" onmouseover="document.getElementById('id_des_td').style.visibility='hidden'">klick</a>  
        <a href="#" onmouseover="document.getElementById('id_des_td').style.visibility='visible'">klick</a>
        

        Gruß, Jürgen

        1. <a href="#" onmouseover="document.getElementById('id_des_td').style.visibility='hidden'">klick</a>

          <a href="#" onmouseover="document.getElementById('id_des_td').style.visibility='visible'">klick</a>

            
          Noch mal allen zusammen vielen Dank für die Unterstützung.  
          @Jürgen - das scheint wirklich die kürzeste Lösung zu sein - es funktioniert! Wie müsste ich es aber handhaben wenn 2 TD´s mit ausgeblendet werden sollen? Habe beiden eine ID vergeben, es wird aber immer nur das erste TD ausgeblendet. Mit  
            
          getElementById('td1','td2').style.visibility='hidden'">TEST</a>  
            
          gehts leider auch nicht. Darf eine ID doppelt vorkommen?  
            
          Vielen Dank und Gruß  
          Tolwin
          
          1. hi,

            Wie müsste ich es aber handhaben wenn 2 TD´s mit ausgeblendet werden sollen?

            Man müsste das, was jetzt ein mal gemacht wird, noch ein zweites mal machen.

            Habe beiden eine ID vergeben, es wird aber immer nur das erste TD ausgeblendet. Mit
            getElementById('td1','td2').style.visibility='hidden'">TEST</a>
            gehts leider auch nicht.

            Natürlich nicht. getElementById möchte einen Parameter bekommen, und nicht noch einen zweiten.

            Darf eine ID doppelt vorkommen?

            Nein.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Danke! habs nach etwas überlegen selbst hinbekommen ;)

              Viele Grüße
              Tolwin

            2. Hallo wahsaga.

              Wie müsste ich es aber handhaben wenn 2 TD´s mit ausgeblendet werden sollen?

              Man müsste das, was jetzt ein mal gemacht wird, noch ein zweites mal machen.

              Und hierfür bietet sich ggf. eine Schleife an, deren Anzahl der Durchläufe als Parameter übergeben wird. (Dadurch kann diese Schleife auch eine Zelle allein aus- / einblenden.)

              Einen schönen Montag noch.

              Gruß, Ashura

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              mathbr:del.icio.us/ mathbr:w00t/
          2. Hi Tolwin,

            ich denke, du musst es in 2 Schritten machen (das javascript darf aber dann nicht im link stehen):

            function hide() {
            document.getElementById("td1").style.visibility="hidden";
            document.getElementById("td2").style.visibility="hidden";
            }
            ----
            <a href="blabla.zip" onMouseOver="hide()">...</a>

            mfg

            Michael

  2. Hi,

    ich versuche gerade ein einzelnes <td> per <div>Tag auszublenden.

    was hat ein div um ein td herum verloren? Warum benutzt Du das veraltete font-tag?

    document.all[div].style.visibility="visible";

    document.all ist veraltete, proprietaere Technik.

    Mir schein Du solltest Deinen Kenntnisstand etwas auffrischen. Dazu dient diese Doku hier. Insbesondere empfehle ich Dir, im Zusammenhang mit Deinem Problem die Css-Eigenschaft "display" nachzulesen.

    verpass Deiner TD eine id, greife auf diese mit document.getElementById() zu und veraendere den Wert des display.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Hallo Joachim,

      » ... und veraendere den Wert des display.

      display ist hier ungeschickt, da dann die restlichen TDs eine Spalte vorrücken.

      Gruß, Jürgen

      1. Hi,

        display ist hier ungeschickt, da dann die restlichen TDs eine Spalte vorrücken.

        nun ja, seine genaue Konstruktion geht aus der Source nicht hervor, ich gehe davon aus, dass eine ganze Spalte verschwinden soll. Da waere dann eine nur versteckte "Leerspalte" moeglicherweise optisch nicht vorteilhaft...

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
  3. Hi Tolwin,

    ich an deiner Stelle würde statt einem <div>-Tag um das <td> herum einfach in das <td> noch ein <table>-Tag einfügen, welches du dann ausblenden kannst.

    Also am besten so (würde ich sagen):

    function show(){
     document.getElementByID("tabelle").style.visibility = "visible"
    }

    function hide(){
     document.getElementByID("tabelle").style.visibility = "visible"
    }

    --------

    <td bgcolor="#33CC00"><table id="tabelle" width="100%" height="100%" bgcolor="#33CC00"><tr><td style="color:#FFFFFF"><b>Hinweise</b></td></tr></table></td>

    <a href="blabla.zip" onClick="show()">einblenden</a>

    <a href="blub.zip" onClick="hide()">ausblenden</a>

    1. Hi

      ich an deiner Stelle würde statt einem <div>-Tag um das <td> herum einfach in das <td> noch ein <table>-Tag einfügen, welches du dann ausblenden kannst.

      Da das div an dieser stelle nicht erlaubt ist, ist dein erster ansatz schon mal richtig, nur der zweite Teil ergibt keine Sinn. Warum sollte er seinen Code weiter aufblähen?

      so long
      Ole
      (8-)>

      --
      Stickstoff eignet sich nicht für Handarbeiten.
    2. Hallo Michael S.,

      ich an deiner Stelle würde statt einem <div>-Tag um das <td> herum einfach in das <td> noch ein <table>-Tag einfügen, welches du dann ausblenden kannst.

      warum nur eine Tabellen, warum nicht noch ein iframe oder so. Komplizierter gehts wohl nicht.

      Gruß, Jürgen

      1. Hi Jürgen,

        warum nur eine Tabellen, warum nicht noch ein iframe oder so. Komplizierter gehts wohl nicht.

        Es geht wahrscheinlich auch, wenn man nur das <td> ausblendet, aber ich wussts eben nicht ganz genau, und es ist doch egal, wenn es ein bisschen komplizierter ist, Hauptsache ist doch, dass es funktioniert, oder?

        mfg

        Michael

        1. Hallo Michael S.,

          Es geht wahrscheinlich auch, wenn man nur das <td> ausblendet, aber ich wussts eben nicht ganz genau, und es ist doch egal, wenn es ein bisschen komplizierter ist, Hauptsache ist doch, dass es funktioniert, oder?

          aber doch nicht ausgerechnet eine Tabelle in einer Tabelle. Bei einem DIV oder P oder so hätte ich ja nichts gesagt.

          Gruß, Jürgen

          1. Hi Jürgen,

            aber doch nicht ausgerechnet eine Tabelle in einer Tabelle. Bei einem DIV oder P oder so hätte ich ja nichts gesagt.

            Was ist denn daran so schlimm? Das mache ich ständig. Wenn eine Seite als Tabelle aufgebaut ist und du willst noch eine Tabelle reinsetzen, musst du das doch auch machen, oder? Und man darf es ja, es ist doch nicht verboten, oder?

            mfg

            Michael

            1. hi,

              Was ist denn daran so schlimm? Das mache ich ständig.

              _Das_ ist das schlimme daran.

              Wenn eine Seite als Tabelle aufgebaut ist

              , dann ist das schon schlimm genug, wenn du diese Tabelle nur zu Layoutzwecken (miss-)brauchst.

              und du willst noch eine Tabelle reinsetzen,

              Das will jemand, der semantisch und strukturell wertvolles HTML schreiben will, ja gar nicht.

              Und man darf es ja, es ist doch nicht verboten, oder?

              Verboten nicht, aber Unsinn.

              gruß,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
              1. Hi wahsage,

                wenn du diese Tabelle nur zu Layoutzwecken (miss-)brauchst

                wie willst du eigentlich sonst ein richtiges Seitenlayout machen? Mit <div>s ist das seit HTML 4.01 ja nicht mehr möglich, da man keine "normalen" Tabellen mit Prozentangaben mehr reinsetzen kann.

                mfg

                Michael

                1. hi

                  wie willst du eigentlich sonst ein richtiges Seitenlayout machen? Mit <div>s ist das seit HTML 4.01 ja nicht mehr möglich, da man keine "normalen" Tabellen mit Prozentangaben mehr reinsetzen kann.

                  mit css & semantisch korrekten (x)html...kein problem.

                  btw. alles mit divs statt mit tabellen zu machen ist wie den teufel mit dem belzebub auszutreiben.

                  so long
                  Ole
                  (8-)>

                  --
                  Stickstoff eignet sich nicht für Handarbeiten.
                2. hallo,

                  wie willst du eigentlich sonst ein richtiges Seitenlayout machen?

                  Verstehe ich nicht, warum Tabellen für _richtige_ Layouts zwingend erforderlich sein sollen ?
                  Ein Beispiel um dich vielleicht auf den Geschmack von CSS bringen zu können.

                  Grüße aus Berlin,

                  tufi

                  1. Hallo tufan.

                    Verstehe ich nicht, warum Tabellen für _richtige_ Layouts zwingend erforderlich sein sollen ?
                    Ein Beispiel um dich vielleicht auf den Geschmack von CSS bringen zu können.

                    Mein derzeitiger absoluter Favorit ist das Layout von Erics Weblog.

                    Einen schönen Montag noch.

                    Gruß, Ashura

                    --
                    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                    mathbr:del.icio.us/ mathbr:w00t/
                    1. hallo Ashura,

                      Hallo tufan.

                      Mein derzeitiger absoluter Favorit ist das Layout von Erics Weblog.

                      eine schlichte schöne Seite, gefällt mir auch. Ein Blick ist meiner Meinung nach auch High Resolution wert.

                      Einen schönen Montag noch.

                      dir auch. :-)

                      Grüße aus Berlin,

                      tufi

                3. hi,

                  wenn du diese Tabelle nur zu Layoutzwecken (miss-)brauchst

                  wie willst du eigentlich sonst ein richtiges Seitenlayout machen?

                  Wie schon gesagt:
                  Mit strukturell _sinnvollem_ HTML, dass dann mittels CSS formatiert wird.

                  Mit <div>s ist das seit HTML 4.01 ja nicht mehr möglich,

                  Begründung?

                  da man keine "normalen" Tabellen mit Prozentangaben mehr reinsetzen kann.

                  Ich will ja auch keine "Tabelle" irgendwo reinsetzen, wenn ich keine tabellarischen Daten darstellen möchte.

                  Btw: zu diesem Thema wurden schon haufenweise Diskussionen geführt. Informiere dich doch bitte im Archiv über über google über semantisches HTML. Sollten _dann_ noch Fragen offen sein, können wir die Diskussion gerne fortsetzen.

                  gruß,
                  wahsaga

                  --
                  /voodoo.css:
                  #GeorgeWBush { position:absolute; bottom:-6ft; }
        2. Hallo Michael.

          […] und es ist doch egal, wenn es ein bisschen komplizierter ist, Hauptsache ist doch, dass es funktioniert, oder?

          Dir sagt KISS¹ etwas?

          Einen schönen Montag noch.

          Gruß, Ashura

          --
          ¹ Nein, nicht die hier.
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          mathbr:del.icio.us/ mathbr:w00t/