Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Скрыть\показать div в ряде таблицы (https://javascript.ru/forum/events/11885-skryt%5Cpokazat-div-v-ryade-tablicy.html)

romzes2 19.09.2010 12:12

Скрыть\показать div в ряде таблицы
 
В JS я чайник, по этому, буду предельно краток:
Есть документик:
<style> #menus_s {bg-color:333#} </style>
<script> window.onload=function(){tableruler();} </script>
<table id="menus" width="200">
  <tr>
    <td width="20">Текст1</td>
    <td width="20"><div style="display:none">Картики1</div></td>
  </tr>
  <tr>
    <td width="20">Текст2</td>
    <td width="20"><div style="display:none">Картики2</div></td>
  </tr>
</table>


Есть скриптик подключенный к этому документу (нарыл в нэте):
function tableruler() {
    if (document.getElementById && document.createTextNode) {
        var tables=document.getElementsByTagName('table');
        for (var i=0;i<tables.length;i++) {
            if(tables[i].id=='menus') {
                var trs=tables[i].getElementsByTagName('tr');
                for(var j=0;j<trs.length;j++) {
                    if(trs[j].parentNode.nodeName=='TBODY' && trs[j].parentNode.nodeName!='TFOOT') {
                        trs[j].onmouseover=function() {
                         //this.getElementsByTagName('div').style.display="block";
                            this.id='menus_s';
                            return false;
                        }
                        trs[j].onmouseout=function() {
                        //this.getElementsByTagName('div').style.display="none";
                            this.id='';
                            return false;
                        }
                     }
                }
            }
        }
    }
}

Суть: данный скрипт подсвечивает ряд в таблице при наведении на него курсором цветом #333 (через класс: менюс_с), а когда курсор убирают, подсветка пропадает. Это всё успешно работает!
Появилась задумка: сделать так, чтобы при наведении курсора на ряд - в этом ряду включалась бы не только подсветка, но и появлялись картинки, которые находятся в скрытом диве этого ряда. :write:
Мои попытки это реализовать находятся в JS скрипте под косыми чертами...ессесно как только косые убрать, всё не работает.
помогите пожалуйста, и сильно не бейте :haha: Зарание спасибо :thanks:

romzes2 19.09.2010 13:31

Оказалось элементарно:
this.getElementsByTagName('div')[0].style.display="block";
и
this.getElementsByTagName('div')[0].style.display="none";

Но теперь есть следующая проблема: Если вдруг в в этом ряде нету дива вылетет ошибка JS.
Как прописать: если див есть (выполнить this.getElementsByTagName('div')[0].style.display="block"; ) если нету, то ничего не делать...? :-?

romzes2 19.09.2010 13:55

Решение:
if (this.getElementsByTagName('div')[0]) {
this.getElementsByTagName('div')[0].style.display="none";
}

Спасибо мне!:) Тема закрыта!


Часовой пояс GMT +3, время: 00:27.