Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2012, 21:01   #1
Mehanoid5007
Новичок
Джуниор
 
Регистрация: 11.09.2012
Сообщений: 2
Печаль Ошибка в работе кода: for и document.write

Вроде написал всё правильно, но на выходе получается, что вместо 3х разных картинок открываются 3 вкладки с одинаковыми адресами. Ошибки в цикле вроде нет - во всяком случае счётчик точно меняет значения, но почему цифра после изменения не попадает в адрес - не понятно.

Код:
<script type="text/javascript">
function OpenTab()
{
	var address="http://www.freebuttons.org/fb/lightbox_samples/data/images/sc1", i=1, a=3, format=".jpg";
	for (i; i<=a; i++)
	{
		document.write("<a id='Open' style='display:none'  href='" + address + i + format + "' target='_blank'>0</a>");
		document.getElementById('Open').click();
	}
}
</script>

<input type="button" value="Enter" onclick="OpenTab()">
PS Также буду благодарен, если кто-нибудь подскажет, как значение из текстового поля поместить в переменную.
Mehanoid5007 вне форума Ответить с цитированием
Старый 11.09.2012, 22:38   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Вы создаёте три элемента с одинаковыми идентификатороми. Если элементов с одинаковыми идентификаторами несколько, то функция getElementById возвращает первый попавшийся элемент в структуре DOM с указанным идентификатором. Понятно, что этот первый попавшийся элемент будет одним и тем же.

Код HTML:
<html>
<head></head>

<script type="text/javascript">
function OpenTab()
{
	var address="http://www.freebuttons.org/fb/lightbox_samples/data/images/sc1";
	var a = 3;
	var format=".jpg";
	for (var i=1; i<=a; i++)
	{
		document.write("<a id='Open_"+i+"' style='display:none'  href='" + address + i + format + "' target='_blank'>0</a>");
		document.getElementById('Open_'+i).click();
	}
}
</script>
<body>
<input type="button" value="Enter" onclick="OpenTab()">
</body>
</html>
Получать из input значение:
Код:
var txt_value = document.getElementsById('txt').value;
^-.-^ My GitHub

Последний раз редактировалось Fenex; 11.09.2012 в 22:46. Причина: орф.
Fenex вне форума Ответить с цитированием
Старый 11.09.2012, 23:28   #3
Mehanoid5007
Новичок
Джуниор
 
Регистрация: 11.09.2012
Сообщений: 2
По умолчанию

Большое спасибо, теперь я увидел, что не так.
За переменную тоже спс.
Mehanoid5007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему document.write() не работает??? moshkin_ura JavaScript, Ajax 5 22.02.2012 23:12
Аналог document.write с привязкой к событию? Benderbej JavaScript, Ajax 2 24.11.2010 15:42
Особенности document.write() Vitalyk JavaScript, Ajax 8 14.02.2010 22:41
document.write Flamberg JavaScript, Ajax 1 10.01.2010 15:07
Как обратиться к линку из document.write ? Navsad JavaScript, Ajax 8 31.01.2009 17:08