Обработать 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 Заранее огромное спасибо! |
Тестовый пример в студию. желательно обернуть в [ HTML run] тут html код [ /HTML ]
|
вот минимальный проект!
в разметке только нужный HTML и два скрипта прямо в HEAD http://axample.ru.umitest.ru/example/ там есть два чекбокса с подписями - они рабочие |
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>
|
извиняюсь конечно, но ваша страница делает АБСОЛЮТНО тоже самое, что и моя!
мне нужно, чтобы ваши смайлы поменялись не на одну и тужу картинку, а каждый смайл изменился на заданную картинку и эти картинки должны быть разные! вы как-будто даже не взглянули на мой код вы просто повторили его, заменив jQuery на циклы, хотя jQuery мне кажется намного более элегантным решением в данном случае |
Zeka13, а вы не пробывли включать логику? - просто можно логически прийти к тому что, в атрибут new _src можно записывать ссылки на разные картинки.
|
спасибо большое, теперь разобрался
|
| Часовой пояс GMT +3, время: 21:55. |