Autor Zpráva
Kraken
Profil *
Ahoj, jak udělám, aby se zobrazila pouze skupina řádků pod nadpisem? Takhle se zobrazují všechny skryté skupiny.

<table>
<tr><td colspan="2" class="show">Nadpis 1</td></tr>
<tbody class="skryj">
<tr><td>AA</td><td>BB</td></tr>
<tr><td>AA</td><td>BB</td></tr>
</tbody>
<tr><td colspan="2" class="show">Nadpis 2</td></tr>
<tbody class="skryj">
<tr><td>CC</td><td>DD</td></tr>
<tr><td>CC</td><td>DD</td></tr>
</tbody>
</table>
jQuery:
<script type="text/javascript">
  $(function() {
  $('.skryj').hide();
    $('.show').click(function() {
      $('.skryj').toggle();
    });
 })   
  </script>
Martin02
Profil
Kraken:
$('.skryj') toto označuje jak ten spodní text, tak ten horní text, takže se zobrazí/zmizí oba. Proveď změnu, aby jsi vybíral jen jeden text - jeden tbody:
<table>
<tr><td colspan="2" class="show1">Nadpis 1</td></tr>
<tbody class="skryj1">
<tr><td>AA</td><td>BB</td></tr>
<tr><td>AA</td><td>BB</td></tr>
</tbody>
<tr><td colspan="2" class="show2">Nadpis 2</td></tr>
<tbody class="skryj2">
<tr><td>CC</td><td>DD</td></tr>
<tr><td>CC</td><td>DD</td></tr>
</tbody>
</table>
<script type="text/javascript">
  $('.skryj1, .skryj2').hide();
    $('.show1').click(function() {
      $('.skryj1').toggle();
    });
    $('.show2').click(function() {
      $('.skryj2').toggle();
    }); 
</script>
Kraken
Profil *
Díky, ale já budu mít X [1-1000] skupin řádků (tbody), nebylo by něco univerzálnějšího? Snažil jsem se použít v jQuery NEXT, ale vůbec mi to nefungovalo.

Děkuji za pomoc
Janca
Profil *
Také by mě zajímalo jak toto řešit, mám obdobný problém.
Pomůže někdo?
preca1
Profil
Předpokládám, že to HTML bude něčím generované (JS, PHP, Java, ...). Jde to udělat několika způsoby:

1) každému nadpisu a tbody vygenerovat unikátní id a pomocí toho potom zacílit script přidávající posluchač události. Přidání posluchače bych udělal v každé iteraci zvlášť pro právě vygenerovanou skupinu řádků (pomocí elementu script).

2) každému nadpisu a tbody vygenerovat unikátní id. Přidat jeden posluchač události pro celou tabulku a potom v obsluze události kontrolovat, na jaký element se kliklo. Pokud to byl nadpis, tak například z jeho id odvodit id tbody, které má být skryto/zobrazeno. Tomuto řešení se říká delegování události a je to vhodný řešení, pokud by posluchačů událostí mělo bejt moc (kolik je moc, záleží na prostředí, kde script poběží) - ušetří to hlavně paměť. Řešení je to ale složitější na implementaci.
Kcko
Profil
Kraken:
Obal si ty klikací řádky theadem viz. http://jsfiddle.net/F3kEp/1/

next Ti fungovat nemohlo, protože v DOM struktuře rozhodně není tag TR vedle tagu TBODY
Kraken
Profil *
Bomba! Děkuju

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: