Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.02.2013, 12:41
Интересующийся
Отправить личное сообщение для Zeka13 Посмотреть профиль Найти все сообщения от Zeka13
 
Регистрация: 20.11.2010
Сообщений: 12

Обработать javascript''ом элементы по регепсу
Доброго времени суток, я только начинаю разбираться в javascript

Задача: в зависимости от выбора checkbox изменить src нужных картинок

Вот так у меня получилось при помощи jQuery примитивно изменить src
$("img[id^=pic]").attr("src","second.jpg");


Но на самом деле мне нужен следующий обработчик
function filter(type, typeid)
{
	type = document.getElementById(type); // id checkbox
	typeid = document.getElementById(typeid); // id соответствующей картинки
	picsrc = typeid.src.substr(0,typeid.src.length - 4); // убираем окончание если галка стоит
	if (type.checked) typeid.src = picsrc + '-2.jpg'; // нужное окончание если галка стоит
	//возвращаемся к исходным изображениям
	else
	{
		picsrc = typeid.src.substr(0,typeid.src.length - 6); // убираем окончание если галка не стоит
		typeid.src = picsrc + '.jpg'; // нужное окончание если галка не стоит
	}
}


Вопрос только как теперь связать это вместе

Первый вариант работает со всеми нужными картинками, но имеет примитивный обработчик

Второй вариант имеет нужный мне обработчик, но работает только с одной картинкой

Дайте хоть идею, а то я совсем себя исчерпал - опыта нет совсем в JS

Заранее огромное спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 28.02.2013, 13:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Тестовый пример в студию. желательно обернуть в [ HTML run] тут html код [ /HTML ]
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2013, 16:32
Интересующийся
Отправить личное сообщение для Zeka13 Посмотреть профиль Найти все сообщения от Zeka13
 
Регистрация: 20.11.2010
Сообщений: 12

вот минимальный проект!

в разметке только нужный HTML и два скрипта прямо в HEAD

http://axample.ru.umitest.ru/example/

там есть два чекбокса с подписями - они рабочие
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2013, 17:59
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Zeka13,
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>

<img class="smiles" src="http://s19.rimg.info/036e2161a3108d224768fc56a4d43a8c.gif" new_src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Hopetoun_falls.jpg/300px-Hopetoun_falls.jpg">
<img class="smiles" src="http://s9.rimg.info/1e05da87819c011d1521b15f58557919.gif" new_src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Hopetoun_falls.jpg/300px-Hopetoun_falls.jpg">
 <img class="nature" src="http://wallzpoint.com/wp-content/gallery/nature_1/cool-nature-wallpapers-hd-1920x1200.jpg" width ="500" height="500" new_src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Hopetoun_falls.jpg/300px-Hopetoun_falls.jpg">   
    <br>
    <div id="boxes">
       <input type="checkbox" replace_class="smiles" > сменить смайлы
    <br>
    <input type="checkbox" replace_class="nature" > сменить картинку
    </div>
    <script>


      function replace_img(cls){
      
        var imgs = document.getElementsByClassName(cls),
            img,src;
        
        for(var i = 0, leng = imgs.length; i < leng;i++){
        
         img = imgs[i];
          
          src = img.getAttribute("src");
        
          img.src = img.getAttribute("new_src");
          
          img.setAttribute("new_src", src);
        
          
        }
      
       
      }      
      
      var boxs = document.getElementById("boxes");
      
      boxs.onchange = function (e){
        
       var target =  e.target || event.scrElement;
        
       if( target.type != "checkbox") return;
        var cls = target.getAttribute("replace_class");
       
        if(cls.length < 1) return;
       
        replace_img(cls);
      
      }

    </script>

  </body>
</html>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #5 (permalink)  
Старый 05.03.2013, 13:36
Интересующийся
Отправить личное сообщение для Zeka13 Посмотреть профиль Найти все сообщения от Zeka13
 
Регистрация: 20.11.2010
Сообщений: 12

извиняюсь конечно, но ваша страница делает АБСОЛЮТНО тоже самое, что и моя!

мне нужно, чтобы ваши смайлы поменялись не на одну и тужу картинку, а каждый смайл изменился на заданную картинку и эти картинки должны быть разные!

вы как-будто даже не взглянули на мой код

вы просто повторили его, заменив jQuery на циклы, хотя jQuery мне кажется намного более элегантным решением в данном случае
Ответить с цитированием
  #6 (permalink)  
Старый 05.03.2013, 13:58
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Zeka13, а вы не пробывли включать логику? - просто можно логически прийти к тому что, в атрибут new _src можно записывать ссылки на разные картинки.
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #7 (permalink)  
Старый 10.03.2013, 15:11
Интересующийся
Отправить личное сообщение для Zeka13 Посмотреть профиль Найти все сообщения от Zeka13
 
Регистрация: 20.11.2010
Сообщений: 12

спасибо большое, теперь разобрался
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрыть/показать элементы в зависимости от значения select AnyKeyLeft Элементы интерфейса 12 16.07.2014 16:26
Выбрать элементы, в которые вложен элемент с id. Вадимчег jQuery 3 24.11.2012 10:38
при изменении размера div элементы съезжают gallyamov jQuery 5 22.08.2012 10:24
Не могу удалить клонируемые элементы ViktorCore Элементы интерфейса 11 20.12.2011 20:24
Как удалить повторные элементы из массива? YISHIMITSY Общие вопросы Javascript 1 04.05.2010 00:04