Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.02.2009, 14:25
Интересующийся
Отправить личное сообщение для arlek1n Посмотреть профиль Найти все сообщения от arlek1n
 
Регистрация: 18.12.2008
Сообщений: 12

как узнать кол-во див-вов на странице ?.
Здравствуйте.
итак. ситуация такова. у меня есть на странице таблица.
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr valign="top">
<td width="180">
<table cellpadding="4" cellspacing="2" border="0" width="180">
<tr>
<td id="to_main" class="td_menu" onClick="java script:display_page('main')" onMouseOver="java script:change_fon_on('to_main')" onMouseOut="java script:change_fon_off('to_main')">
...
</td>
</tr>
<tr>
<td id="to_clinika" class="td_menu" onClick="java script:display_page('clinika')" onMouseOver="java script:change_fon_on('to_clinika')" onMouseOut="java script:change_fon_off('to_clinika')">
...
</td>
</tr>
<tr>
<td id="to_statistika" class="td_menu" onClick="java script:display_page('statistika')" onMouseOver="java script:change_fon_on('to_statistika')" onMouseOut="java script:change_fon_off('to_statistika')">
...
</td>
</tr>
<tr>
<td id="to_protokols" class="td_menu" onClick="java script:display_page('protokols')" onMouseOver="java script:change_fon_on('to_protokols')" onMouseOut="java script:change_fon_off('to_protokols')">
...
</td>
</tr>
<tr>
<td id="to_lab" class="td_menu" onClick="java script:display_page('laboratory')" onMouseOver="java script:change_fon_on('to_lab')" onMouseOut="java script:change_fon_off('to_lab')">
...
</td>
</tr>
<tr>
<td id="to_kadri" class="td_menu" onClick="java script:display_page('otdel_kadrov')" onMouseOver="java script:change_fon_on('to_kadri')" onMouseOut="java script:change_fon_off('to_kadri')">
...
</td>
</tr>
<tr>
<td id="to_other" class="td_menu" onClick="java script:display_page('other')" onMouseOver="java script:change_fon_on('to_other')" onMouseOut="java script:change_fon_off('to_other')">
...
</td>
</tr>
</table>
</td>
<td>
<div id="main" style="display: visible;">

</div>
<div id="clinika" style="display: none;">
...
</div>
<div id="statistika" style="display: none;">
...
</div>
<div id="protokols" style="display: none;">
...
</div>
<div id="laboratory" style="display: none;">
...
</div>
<div id="otdel_kadrov" style="display: none;">

</div>
<div id="other" style="display: none;">
...
</div>
</td>
</tr>
</table>


как видно по коду. есть менюшка и есть правая ячейка, в которой див-ы. при нажатии на пункт меню хочу чтобы соотв див становился видным, а остальные, соответственно - невидимыми.
когда у меня было два таких див-а, то все было банально просто. но сейчас их аж 7 штук. и писать 7 проверок - не прельщает. так вот у меня такой вопрос: может существует какой-то массив этих див-ов, чтобы омжно было в цикле пробежацца и ненужные выключить, а ныжный включить или есть некая функция создания массива этих див-ов ?.

вот начало функции, которая будет включать выбранный див:

function display_page(need_div)
{
document.getElementById(need_div).style.display = '';

}



Спасибо...

Последний раз редактировалось Андрей Параничев, 06.02.2009 в 14:40. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2009, 15:06
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

getElementsByTagName
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2009, 16:06
Интересующийся
Отправить личное сообщение для arlek1n Посмотреть профиль Найти все сообщения от arlek1n
 
Регистрация: 18.12.2008
Сообщений: 12

var div_array = getElementsByTagName('DIV');
var div_count = div_array.length;
alert(div_count);


ошибка: Предполагается наличие объекта

Последний раз редактировалось Андрей Параничев, 06.02.2009 в 16:07. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2009, 16:27
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Задайте основной таблице id например "table", тогда определение кол-ва div'ов будет выглядеть так:
var div = document.getElementById("table").getElementsByTagName('div');
alert(div.length);
Ответить с цитированием
  #5 (permalink)  
Старый 09.02.2009, 10:35
Интересующийся
Отправить личное сообщение для arlek1n Посмотреть профиль Найти все сообщения от arlek1n
 
Регистрация: 18.12.2008
Сообщений: 12

спасибо. действительно работает.. но счас вопрос в другом слегка возник. итак. вот кусок таблицы с дивами:
<table id="table_main" cellpadding="0" cellspacing="0" border="0" width="100%">
<tr valign="top">
	<td width="180">
	<table cellpadding="4" cellspacing="2" border="0" width="180">
   	<tr>
		<td id="to_main" class="td_menu" onClick="javascript:display_page('1')" onMouseOver="javascript:change_fon_on('to_main')" onMouseOut="javascript:change_fon_off('to_main')">
			...
		</td>
	</tr>
	<tr>
		<td id="to_clinika" class="td_menu" onClick="javascript:display_page('2')" onMouseOver="javascript:change_fon_on('to_clinika')" onMouseOut="javascript:change_fon_off('to_clinika')">
			...
		</td>
	</tr>

вот кусок кода, который делает див- видиым-невидимым:
function display_page(need_div)
	{
		var div_array = document.getElementById("table_main").getElementsByTagName('div');
		for (i = 1; i <= div_array.length; i++)
		{
			if (i == need_div)
			{
				document.getElementById(i).style.display = '';
			}
			else
			{
				document.getElementById(i).style.display = 'none';
			}
		}

выдает ошибку, что мол Требуется наличие объекта. Я так понимаю, что ругается на тип переменной "i". а как бы сделать чтобы все ладили друг с другом ?. )

спасибо.
Ответить с цитированием
  #6 (permalink)  
Старый 09.02.2009, 11:32
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

function display_page(need_div)
    {
        var div_array = document.getElementById("table_main").getElementsByTagName('div');
        for (i = 0; i < div_array.length; i++)
        {
            if (div_array[i] == need_div)
            {
                div_array[i].style.display = '';
            }
            else
            {
                div_array[i].style.display = 'none';
            }
        }
Ответить с цитированием
  #7 (permalink)  
Старый 09.02.2009, 11:53
Интересующийся
Отправить личное сообщение для arlek1n Посмотреть профиль Найти все сообщения от arlek1n
 
Регистрация: 18.12.2008
Сообщений: 12

точна. это же массив и мона обратицца к элементы массива. тупанул я ))
пасиб ))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать о том, что флэш уже загрузился. Snipe Общие вопросы Javascript 4 29.01.2009 11:21
Как узнать символ по unicode-коду??? alexKniaz Общие вопросы Javascript 3 25.10.2008 23:26
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17
Как передать фокус флешке на странице? dArky Общие вопросы Javascript 3 10.08.2008 01:03
Как узнать, что IFRAME загрузился? DeUre Общие вопросы Javascript 4 01.08.2008 14:09