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.