Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> простой вопрос по getElementById, вывести количество элементов 
:(
    Опции темы
QApple
  Дата 7.6.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



Помогите! Нужно получить количество элементов и поменять их значения стиля
Вот

Код

<script language='JavaScript' type='text/javascript'>
n = 1;
function pressLink(id) 
{
    if(n == 0)
    { 
        document.getElementById('show'+id).style.display = 'none'; 
        n = 1; 
    }
    else
    { 
        document.getElementById('show'+id).style.display = 'block';
        n = 0;
    }
}
</script>

<center><table cellspacing='0' cellpadding='0'>

<tr align="center"><td><a href="javascript:pressLink(1)">test</a></td></tr>
<tr align="center"><td><a href="javascript:pressLink(2)">test2</a></td></tr>

<tr style='display: none;' id='show1'><td>work! (1)</td></tr>
<tr style='display: none;' id='show2'><td>work! (2)</td></tr>

</table></center>


Нужно написать функцию showAll() при вызове которой будут ставиться none/block на все id. как это сделать?
пробывал что-то типа for (var i = 0; i < document.getElementById.length; i++)  но не работает ... в доках по getElementById() ничего не нашел

и еще, есть неприятная особенность открытия ссылок. если открыта одна ссылка и нужно еще открыть вторую, приходиться нажимать два раза (чтобы изменить переменную n). можно сделать более грамотно?

Заранее спасибо  smile 

PM MAIL   Вверх
SelenIT
Дата 7.6.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



id по определению уникален (повторяющиеся id-ы — ошибка), поэтому getElementById в норме возвращает один элемент.

Если нужно получить несколько элементов, можно, конечно, забить актуальные id-ы в массив и пробегать по нему циклом с getElementById-ом. Но лучше (на мой взгляд) воспользоваться другими ф-циями, например, getElementsByTagName, которые возвращают коллекцию элементов. А еще коллекция строк таблицы доступна как свойство ссылкаНаТаблицу.rows.

И еще, <a href="javascript:..."> — плохо, может привести к неприятностям в IE.  Надежнее так: <a href="#" onclick="...; return false">.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Samotnik
Дата 8.6.2009, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: нет
Всего: 191



QApple, используй фреймворк (mootools, jquery)
там очень просто, допустим тебе нужно посчитать колличесвто таблиц, пишешь
Код

$('table').length;

ну а если хочешь стандартными методами, то слушай SelenIT  smile 

Это сообщение отредактировал(а) Samotnik - 8.6.2009, 09:52
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0630 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.