Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Javascript. Скрыть - показать картинки при помощи getElementsByName

Ответить
Настройки темы
[решено] Javascript. Скрыть - показать картинки при помощи getElementsByName

Ветеран


Сообщения: 1862
Благодарности: 132


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Привет. Нужна помощь.
Имеем таблицу в которой в одном столбце есть картинки. Нужно по событию, в данном случае чекбокс в ячейке "миниатюра", либо показать, либо скрыть картинки.
Насколько я понял, нужно использовать getElementsByName. Потому как для getElementsById нужны уникальные id, а где я их возьму.
В примере использую тэг а, но думаю суть от использования img не меняется.
Нашел вот такую функцию. Алерты отрабатывают, правда что показывают последующие алерты не пойму.

HTML код: Выделить весь код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Untitled Document</title> </head> <body> <script> function oo() { var myCollection = document.getElementsByName("srcimage"); alert(myCollection.length); for(i=0;i<myCollection.length;i++) { var myElement = myCollection.item(i); myElement.parentNode.style.dislpay = (myElement.parentNode.style.dislpay == "none" ? "block" : "none"); alert(myElement.parentNode.style.dislpay); } } </script> <style type="text/css"> tr { background-color: #CCFFFF; text-align: center; } .thr { background-color: #CCCCCC; } </style> <table width="100%%" border="0" align="center" bgcolor="#CCCCCC"> <tr class="thr"> <th scope="col"><input name="Name" type="checkbox" value="ON"></th> <th scope="col">Изображение</th> <th scope="col">Миниатюра<input type="checkbox" value="ON" onChange="oo()"></th> <th scope="col">Дата добавления <br /> на сервер</th> <th scope="col">Дата последнего<br /> просмотра</th> <th scope="col">Размер файла</th> </tr> <tr> <td><input name="checkbox[]" type="checkbox" value=""></td> <td><a href=""></a></td> <td><a href="" name="srcimage" style="display:none" >iiiii</a></td> <td></td> <td></td> <td></td> </tr> <tr> <td><input name="checkbox[]" type="checkbox" value=""></td> <td><a href=""></a></td> <td><a href="" name="srcimage" style="display:none" >iiiiii</a></td> <td></td> <td></td> <td></td> </tr> <tr> <td><input name="checkbox[]" type="checkbox" value=""></td> <td><a href=""></a></td> <td><a href="" name="srcimage" style="display:block" >iiiii</a></td> <td></td> <td></td> <td></td> </tr> </table> </body> </html>

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 22:19, 21-12-2008

 

Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Цитата Igor_I:
Не работает getElementsById. »
Потому что надо в единственном числе упоминать элемент, а не во множественном. Вот id уж точно не должен повторяться.
getElementById
Цитата Igor_I:
Только location и работает, на все остальное Furebug говорит "too much recursion" ругаясь на эту строчку »
Да, действительно =^_^'= Значит, придётся объекты искать по интернету.
Например, на w3schools.com
JavaScript reference
HTML DOM reference (скорее всего именно это и заинтересует).

Отправлено: 04:02, 25-12-2008 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата Coutty:
Busla: Только спецификации html 4.01 предполагает, что name у изображений уникален
Тогда получается, что разработчики JS наплевали на спецификации - ведь метод возвращает массив »
ключевое слово у изображений

Отправлено: 13:27, 25-12-2008 | #12


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


Цитата Coutty:
Потому что надо в единственном числе упоминать элемент, а не во множественном. Вот id уж точно не должен повторяться. »
Так ведь он и не повторяется.
Зато я повторюсь Вот что я имелл ввиду.
Код: Выделить весь код
function op() {

   for(i=1; i<<?=$image_on_page?>; i++)
      {
      document.getElementById( "img" + i).style.display = document.getElementById( "img" + i).style.display == 'none' ? 'inline' : 'none';
      }
}
А ещё я это нашел - http://www.tutorialspoint.com/javascript/index.htm

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 00:25, 26-12-2008 | #13


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Я понял, в чём загвоздка - IE не отрабатывал событие onchange, пока не кликнешь по пустому месту. Поменяйте на onclick, а скрипт тоже чуть изменил:
Код: Выделить весь код
function op() {
   chk = document.getElementById("chkbox").checked;
   for(i = 1; i < <?=$image_on_page?>; i++)
      {
      document.getElementById("img" + i).style.display = chk ? 'inline' : 'none';
      }
}
HTML код: Выделить весь код
<th scope="col">Миниатюра<input type="checkbox" value="ON" id="chkbox" onclick="op()" /></th>

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:28, 26-12-2008 | #14


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать



Если указаны width и height, но значения пустые, то ИЕ плюёт на изображение с высооооокой колокольни. То есть вообще его не показывает.

Напоследок, скрипт отмечающий все чекбоксы. Работает: IE 6.2900.2180, Firefox 2.0.0.1, Opera 9.27
Код: Выделить весь код
function checkAll(oForm, cbName, checked)
{
	for (var i=0; i < oForm[cbName].length; i++)
	{
		oForm[cbName][i].checked = oForm[cbName][i].checked == false ?  true : false;
	}
}

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 20:52, 26-12-2008 | #15



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Javascript. Скрыть - показать картинки при помощи getElementsByName

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как скрыть пользователей при загрузке 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




 
Переход