Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   изменить src у нескольких img (https://javascript.ru/forum/misc/4725-izmenit-src-u-neskolkikh-img.html)

Tohin 16.08.2009 20:22

изменить src у нескольких img
 
Не могу ни выбрать раздел, ни сформулировать запрос для Гугла...
Направьте люди добрый на путь истинный.
Есть несколько тегов img, нужно добавить к имени файла "w_"
То есть было:
<img src="folder/sample.jpg" alt="" width="159" height="96" />
надо сделать:
<img src="folder/w_sample.jpg" alt="" width="159" height="96" />

Допустим на jQuery можно получить src:
jQuery('div.container').find('img').attr('src'))

но что с ним делать дальше пока не пойму...

Octane 16.08.2009 20:45

var images = jQuery("div.container img");
images.get(0).src = "новый адрес 1-го изображения";
images.get(1).src = "новый адрес 2-го изображения";
…
images.get(n).src = "новый адрес n-го изображения";

или
images.get(0).attr("src", "новый адрес 1-го изображения");

не помню что точно возвращает get

Если действия однотипные, то можно пройтись по всем элементам следующим образом:
jQuery("div.container img").each(function() {
    // в this.src будет полный путь, поэтому нужно выполнять замену подстроки
    this.src = новый адрес;
    // или this.attr("src", "новый адрес"); тоже точно не помню, на что ссылается this
});

Gvozd 16.08.2009 20:50

Цитата:

Сообщение от Octane
не помню что точно возвращает get

как и любой метод jQuery - объект jQuery

Tohin 16.08.2009 20:57

Цитата:

Сообщение от Octane (Сообщение 27130)
Если действия однотипные, то можно пройтись по всем элементам следующим образом:
jQuery("div.container img").each(function() {
    // в this.src будет полный путь, поэтому нужно выполнять замену подстроки
    this.src = новый адрес;
    // или this.attr("src", "новый адрес"); тоже точно не помню, на что ссылается this
});

Ага.. про each забыл...
Только одно обстоятельство смущает... Каждый img внутри своего дива, ну да ладно найду я их.
Пойду изучать .replace

Add:
Пока не очень успешно...
Итак this.src возвращает полный путь к картинке "http://server/folder/subfolder/sample.jpg"

Я пишу:
var reg=/(.*folder\/subfodler\/)(.*jpg)/; //имея ввиду: любые элементы до folder/subfolder/ (включая folder/subfolder/) Затем лбые симолы с окончанием на jpg
jQuery('div.fon img').each(function(){
  var src=this.src.replace(reg, $1)
    alert (src);
});


и в итоге $1 выводит null, а $2 is not defined.
Ковыряю дальше...

Tohin 16.08.2009 22:40

Я победил.... Хотя ничего не понял.... Чисто лбом стену проломил (брутфорс)
var reg=/(subfolder\/)(.*jpg)/;
jQuery('div.fon img').each(function(){
  var src=this.src.replace(reg,"$1w$2")
    alert (src);
});

e1f 18.08.2009 17:21

Цитата:

Сообщение от Gvozd (Сообщение 27131)
как и любой метод jQuery - объект jQuery

А вот и нет. get(n) возвращает n-й DOM-элемент , содержащийся в объекте jQuery


Часовой пояс GMT +3, время: 17:33.