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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2010, 21:53   #1
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию Множество полей в JS

Очередная проблема, требующая решения от профессионалов...
С заменой картинок на нужные я разобрался, теперь предстаёт вопрос как сделать такое: в хтмл документе есть пустые картинки, скажем штук 10:
Код:
<img id="sSlot" src="image/empty.png">
<img id="sSlot" src="image/empty.png">
... // ну и так 10 раз
и много непустых картинок.
При нажатии на
Код:
<a href="#" onClick="AddToActive(путь_картинки);">Применить</a>
SRC-параметр непустой картинки переходит в параметр пустой. По такой команде:
Код:
function AddToActive(id) {
var simg=document.getElementById(id);
var slot=document.getElementById("sSlot");
slot.src=simg.src;
}
Здесь вопрос: как программно можно рассчитать, какая пустая картинка всё еще пустая, и применять новый SRC-путь именно к ней, а не к уже занятой (где путь уже применён)? Конечно, можно было сделать для каждой картинки свой ID, а потом в команде присвоения путей картинки писать конкретный ID, Но хочется как-то динамично, чтобы автоматизировать процесс.
Если суть вопроса не ясна - спрашивайте детальнее - готов объяснить.
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума Ответить с цитированием
Старый 26.05.2010, 21:59   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Используёте jquery - там это решается всего несколькими строчками.
Виталий Желтяков вне форума Ответить с цитированием
Старый 26.05.2010, 22:08   #3
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

Виталий Желтяков, не буду отрицать, я нуб в JS, и jquery для меня особо ничего не говорит =\ если Вам не трудно, могли бы Вы навести пример (а я там уже пойму).
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума Ответить с цитированием
Старый 26.05.2010, 23:09   #4
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Цитата:
Сообщение от Sensizu Посмотреть сообщение
не буду отрицать, я нуб в JS, и jquery для меня особо ничего не говорит =\ если Вам не трудно, могли бы Вы навести пример (а я там уже пойму).
http://anton.shevchuk.name/javascrip...for-beginners/
vasek123 вне форума Ответить с цитированием
Старый 27.05.2010, 19:51   #5
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

JQuery - это дополнительные алгоритмы на JS. Подключается как отдельный скрипт и очень расширяет возможности и упрощает программирование. Ваш случай: http://slyweb.ru/jquerydoc/attr-properties.php
Виталий Желтяков вне форума Ответить с цитированием
Старый 28.05.2010, 14:19   #6
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

Цитата:
<img id="sSlot" src="image/empty.png">
<img id="sSlot" src="image/empty.png">
... // ну и так 10 раз
Ну для начала нельзя, чтобы у нескольких объектов на странице были одинаковые id. для того это и идентификатор...
Можно использовать для таких целей поле name.

Тогда вашу функцию можно описать наподобие
Код:
function AddToActive(id) 
{
  var simg=document.getElementById(id); 
  var slots=document.getElementsByName("sSlot");
  var i = 0;
  if (slots.length > 0)
  {
    while (i < slots.length)
    {
      if (slots[i].src == "")
      {
        slots[i].src = simg.src;
        break;
      }
    }
  }
}
Это вариант без jQuery.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 28.05.2010, 14:30   #7
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

Wicort, странно: использую Вашу команду - создаёт простой StuckOverflow (процессор думает думает и никак не надумает, другими словами) и всё О_о. возможная причина такого эффекта - бесконечный цыкл. у меня на странице 10 элементов <img name="sSlot" src="image/empty.png"> и эта команда. хм. почему же так..

П.С. Я уже и src присвоил значение нулю (срц=""), работает теперь только первый раз (первое нажатие на ссылку с командой), а второй снова зависает.
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума Ответить с цитированием
Старый 28.05.2010, 14:56   #8
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

хех, ну да, если присмотритесь к коду, а не будете его тупо копировать, то увидите, что параметр цикла i не меняется
Вам осталось лишь понять, где дописать одну маленькую строчку.
Это чтоб Вы собственной головой тоже не забывали думать
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 28.05.2010, 17:38   #9
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

Wicort, да, действительно, не заметил. не привык к структуре циклов JS еще) мой ареал - Delphi =)
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума Ответить с цитированием
Старый 31.05.2010, 09:24   #10
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

ну, вообще говоря, в в любом языке программирования в цикле с предусловием должен быть счетчик итерации, будь то хоть JS, хоть Delphi
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
множество. Killowatt Помощь студентам 3 02.05.2010 18:58
При удалении записей значения полей с type:=Autoincrement (т.е+) в оставшихся полей не изменяются kenta БД в Delphi 2 29.10.2009 08:28
Объеденение полей запроса в для отображения нескольких полей в одном списке mrCreator Microsoft Office Access 3 08.08.2009 00:53
Множество xxxPascalxxx Помощь студентам 11 24.02.2008 19:07