Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как обратиться к элементам по id в цикле
 
 автор: Yuriev   (04.07.2010 в 14:33)   письмо автору
 
 

Есть на странице много картинок
<div id="blok">
<img id="s1" src="p1.jpg">
<img id="s2" src="p2.jpg">
<img id="s3" src="p3.jpg">
</div>

Как в цикле поменять имена файлов картинок javascript'ом?
s1.src = 'p2.jpg'
s2.src = 'p3.jpg'
s3.src = 'p1.jpg'

  Ответить  
 
 автор: АЯ   (04.07.2010 в 15:12)   письмо автору
 
   для: Yuriev   (04.07.2010 в 14:33)
 

for (var j = 1; j < 4; j++)
document.getElementById ('s' + j).src = 'p' + ((j != 3) ? (j + 1) : 1) + '.jpg';

  Ответить  
 
 автор: sim5   (04.07.2010 в 15:47)   письмо автору
 
   для: Yuriev   (04.07.2010 в 14:33)
 

Если задача, это смещение изображений по кольцу, то можно:
<script>
function imSrc() {
  var elm = document.getElementById('blok');
  var obj = elm.firstChild;
  elm.removeChild(obj);
  elm.appendChild(obj);
}
</script>

<div id="blok"
><img id="s1" src="p1.jpg"
><img id="s2" src="p2.jpg"
><img id="s3" src="p3.jpg"
></div>
<input type="button" value="GO" onclick="imSrc()">

  Ответить  
 
 автор: АЯ   (04.07.2010 в 16:34)   письмо автору
 
   для: sim5   (04.07.2010 в 15:47)
 

для sim5
По аналогии с:
- Суслика видишь?
- Нет.
- А он там есть!

можно написать:
Цикл видишь?
- Нет.
- А он там есть!

:-))

  Ответить  
 
 автор: sim5   (04.07.2010 в 16:46)   письмо автору
 
   для: АЯ   (04.07.2010 в 16:34)
 

Анекдот смешной конечно. )
Но если действительно нужно просто сдвигать изображения, то зачем цикл, достаточно переместить крайние элементы, да и не будет привязки к именам файлов.

  Ответить  
 
 автор: Yuriev   (05.07.2010 в 12:19)   письмо автору
 
   для: sim5   (04.07.2010 в 16:46)
 

Спасибо АЯ и спасибо sim5!
Оба совета оказались очень кстати в разные места..
Только появился ещё вопрос. Если elm.appendChild(obj); добавляет в конец очереди то,
что добавляет в начало?
Я сделал так:
var obj2 = elm.firstChild;
elm.insertBefore(obj, obj2);
Более подходящего, что б было красиво, не нашёл в сети, а в голове пока с этим пустовато.

  Ответить  
 
 автор: sms-send   (05.07.2010 в 13:24)   письмо автору
 
   для: Yuriev   (05.07.2010 в 12:19)
 

-

  Ответить  
 
 автор: sim5   (05.07.2010 в 13:31)   письмо автору
 
   для: Yuriev   (05.07.2010 в 12:19)
 

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования