Tabelle zeilenweise ausblenden mit jQuery

Möchte man mit jQuery einige Zeilen aus einer Tabelle ausblenden, so könnte man auf folgende einfache Lösung verfallen:

Ursprüngliche Tabelle:

<table>
  <tr><td>Zeile 1</td></tr>
  <tr><td>Zeile 2</td></tr>
  <tr><td>Zeile 3</td></tr>
</table>

Tabelle mit <div> und checkbox:

<table>
  <tr><td>Zeile 1</td></tr>
  <div>
    <tr><td>Zeile 2</td></tr>
  </div>
    <tr><td>Zeile 3</td></tr>
</table>
Zeile 2 verstecken

jQuery-Code zum Ausblenden der Zeile 2:

function hideshow() {
  if ($("#cb_test").attr("checked"))
    $("#test").hide();
  else 
    $("#test").show();
}

Dieser Ansatz funktioniert leider nicht, da es nicht möglich ist, Tabellen- und Textstrukturierungelemente zu mischen. Seit HTML 4 gibt es allerdings das <tbody>-Element, das man für diesen Zweck verwenden kann:

<table>
  <tr><td>Zeile 1</td></tr>
  <tbody>
    <tr><td>Zeile 2</td></tr>
  </tbody>
    <tr><td>Zeile 3</td></tr>
</table>
Zeile 2 verstecken

Laut HTML-Validator des W3C ist diese Lösung „HTML 4.01 Transitional“-valide.

No related posts.

Comments

  1. Stefan Knaak says:

    hehe, da sucht man bei google nach jquery zeile ausblenden und findet dich als ersten link..
    so klein ist die virtuelle welt. :)
    Gruß Stefan

  2. Latz says:

    LOL! Das ist wirklich lustig! Hoffe geholfen zu haben…

  3. Andreas K. says:

    Warum macht man das nicht per css und über IDs?

    function hideshow() {
    var obj=document.getElementById(‘t2′);
    if(obj.style.display==‘none‘){
    obj.style.display=‘inline‘;
    }
    else
    {
    obj.style.display=‘none‘;
    }
    }

    1a
    1b
    1c

    2a
    2b
    2c

    hideshow

  4. Andreas K. says:

    statt inline ‚block‘

  5. Hi,

    wieso setzt ihr nicht einfach eine id=“zeileX“ in das und versteckt es einfach mit $(“#zeileX“).hide() ? ;-)

Speak Your Mind

*