|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Javascript. Скрыть - показать картинки при помощи getElementsByName |
|
|
[решено] Javascript. Скрыть - показать картинки при помощи getElementsByName
|
Ветеран Сообщения: 1862 |
Привет. Нужна помощь.
Имеем таблицу в которой в одном столбце есть картинки. Нужно по событию, в данном случае чекбокс в ячейке "миниатюра", либо показать, либо скрыть картинки. Насколько я понял, нужно использовать getElementsByName. Потому как для getElementsById нужны уникальные id, а где я их возьму. В примере использую тэг а, но думаю суть от использования img не меняется. Нашел вот такую функцию. Алерты отрабатывают, правда что показывают последующие алерты не пойму.
|
|
------- Отправлено: 22:19, 21-12-2008 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Вот примерно так:
Изменение стиля я оставил, но это переключатель того, что есть, а не включатель-выключатель. Можно завести глобальную переменную и в ней хранить состояние, если надо. |
Отправлено: 09:07, 22-12-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1862
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо, работает.
Даже в Konqueror работает, а в шестом ослике не хочет. Ну и фиг с ним. ![]() Вот только не понял переключателя - выключателя, какая между ними разница? |
------- Отправлено: 21:39, 22-12-2008 | #3 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Да, только это убирает все картинки на странице, а не только миниатюры ;-)
Поэтому о getElementsByName в чистом виде придётся забыть. Классический вариант: передавать функции id таблицы, перебирать у неё всех потомков, сравнивая картинка это или нет. И опять же: все ли картинки внутри таблицы - миниатюры? |
Отправлено: 23:56, 22-12-2008 | #4 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Цитата Igor_I:
n = 12; // количество миниатюр for (i = 0; i < n; i++) { document.getElementById('img' + i).style.display = 'none'; // или 'block' } Цитата Igor_I:
Цитата Busla:
Впрочем, я бы предпочёл getElementById или getElementByClass из Prototype. |
||||
Отправлено: 03:55, 23-12-2008 | #5 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Coutty, да, каюсь - написал не вникая особо вчитываясь O:-)
Только спецификации html 4.01 предполагает, что name у изображений уникален ![]() |
Отправлено: 11:40, 23-12-2008 | #6 |
Ветеран Сообщения: 1862
|
Профиль | Сайт | Отправить PM | Цитировать Coutty, почти уговорил
![]()
Вот такая функция работает, только приходиться скрипт тоже формировать на лету, чтобы задать количество циклов. Плюс i начинается с 1, а не с 0. А все потому, что инкремент в php сделал в начале цикла. |
------- Отправлено: 23:03, 23-12-2008 | #7 |
Ветеран Сообщения: 1862
|
Профиль | Сайт | Отправить PM | Цитировать Я бы не сказал, что тема совсем решена. В IE 6 версии так и не работает.
Кстати, Coutty, не подскажешь как вывести список переменных из некоторого массива, по типу var_dump, print_r в php. К примеру, в том же document.getElementsByName. Либо здесь - http://www.spravkaweb.ru/javascript/...ocument/object, приведены объекты, как узнать что в этих объектах содержится. |
------- Отправлено: 20:04, 24-12-2008 | #8 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Цитата Busla:
![]() Цитата Igor_I:
function print_r(arr, level) { var print_red_text = ""; if(!level) level = 0; var level_padding = ""; for(var j=0; j<level+1; j++) level_padding += " "; if(typeof(arr) == 'object') { for(var item in arr) { var value = arr[item]; if(typeof(value) == 'object') { print_red_text += level_padding + "'" + item + "' :\n"; print_red_text += print_r(value,level+1); } else print_red_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; } } else print_red_text = "===>"+arr+"<===("+typeof(arr)+")"; return print_red_text; } //Пример вызова функции alert(print_r(document.location)); ![]() Цитата Igor_I:
|
|||
Отправлено: 20:56, 24-12-2008 | #9 |
Ветеран Сообщения: 1862
|
Профиль | Сайт | Отправить PM | Цитировать Не работает getElementsById.
Гугль помогает когда знаешь что искать и как это применить. Вот почему нет аналога php.net? Только location и работает, на все остальное Furebug говорит "too much recursion" ругаясь на эту строчку - print_red_text += print_r(value,level+1); |
------- Отправлено: 22:04, 24-12-2008 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Как скрыть пользователей при загрузке | PrianikOV | Microsoft Windows 2000/XP | 21 | 15-02-2014 23:15 | |
Загрузка - [решено] Можно ли при загрузке скрыть наличие второй ОС? | ivanovandrey | Microsoft Windows 2000/XP | 1 | 04-10-2009 18:20 | |
Интерфейс - [решено] Скрыть имя пользователя при входе в систему | d_dek | Microsoft Windows 2000/XP | 4 | 24-07-2007 11:17 | |
[решено] JavaScript. Скрыть/показать элемент по событию. | System Failure | Вебмастеру | 12 | 20-07-2007 12:24 | |
Смена стиля при помощи javascript | pauluss | Вебмастеру | 1 | 05-01-2006 17:08 |
|