[JS] PRoblem z ukrywaniem tabel

window.onload = function() {

  var tabele = document.getElementsByClassName('cennik');



  for (var i = 0; i < tabele.length; i++) {

    tabele[i].getElementsByTagName('thead')[0].style.display='none';

    tabele[i].getElementsByTagName('tbody')[0].style.display='none';

    tabele[i].getElementsByTagName('caption')[0].onclick = pokaz();

    alert(i);

  }

}


function pokaz() {

}

Mam na stronie kilka tabelek z klasą “cennik”. Chcę je wszystkie ukryći pokazywać dopiero po kliknięciu. Niestety, skrypt ukrywa tylko dwie i taką też podaje wielkość tabele.length. Co więcej, za footerem pojawia się “puste pole” o wielkości porównywalnej z usuniętymi cennikami. Co zrobić?

Po pierwsze nie ma takiej funkcji getElementsByClassName * i musisz ją sam sobie napisać lub używać jakiegoś frameworka (typu jQuery), który ma tego typu rzeczy.

Po drugie nie pokazałeś kodu HTML, więc nic więcej nie jestem w stanie Ci podpowiedzieć (skrypt JS wygląda w porządku) - może klasę ‘cennik’ nadajesz w kodzie HTML innemu elementowi niż

* - to znaczy jest, ale nie wszystkie przeglądarki mają ją zaimplementowaną (np. IE 8 i starsze nie). Kiedyś jej nie było, potem została wprowadzona.

OK, już działa. Ale co z tym footerem?

To pewnie dlatego, że masz ustawioną stałą wysokość tej strony i po ukryciu zawartości tabel zostaje ten kawałem na dole.

Nie pokazałeś kodu, więc nie podam Ci konkretów.