#javascript #jquery #image #attr
#javascript #jquery ( jquery ) #изображение #attr
Вопрос:
Я извлекаю несколько изображений из API и меняю их на свои собственные изображения следующим образом:
$('img[src="http://www.example.com/dir/images/dir/1.gif"]').attr('src', "http://cdn.example.com/dir/1.gif");
$('img[src="http://www.example.com/dir/images/dir/2.gif"]').attr('src', "http://cdn.example.com/dir/2.gif");
$('img[src="http://www.example.com/dir/images/dir/3.gif"]').attr('src', "http://cdn.example.com/dir/3.gif");
$('img[src="http://www.example.com/dir/images/dir/4.gif"]').attr('src', "http://cdn.example.com/dir/4.gif");
$('img[src="http://www.example.com/dir/images/dir/5.gif"]').attr('src', "http://cdn.example.com/dir/5.gif");
$('img[src="http://www.example.com/dir/images/dir/6.gif"]').attr('src', "http://cdn.example.com/dir/6.gif");
$('img[src="http://www.example.com/dir/images/dir/7.gif"]').attr('src', "http://cdn.example.com/dir/7.gif");
$('img[src="http://www.example.com/dir/images/dir/8.gif"]').attr('src', "http://cdn.example.com/dir/8.gif");
$('img[src="http://www.example.com/dir/images/dir/9.gif"]').attr('src', "http://cdn.example.com/dir/9.gif");
$('img[src="http://www.example.com/dir/images/dir/10.gif"]').attr('src', "http://cdn.example.com/dir/10.gif")
Теперь, поскольку текста слишком много, я сжал его следующим образом:
$('img[src^="http://www.example.com/"]').each(function(index,element){
var $this, src, newSrc;
$this = $(this);
src = $this.attr('src');
newSrc = src.replace('www.example.com/dir/images/dir', 'cdn.example.com/dir');
$this.attr('src', newSrc);
});
Теперь я хочу изменить расширение своих изображений на .png
. Поэтому в основном я хочу заменить URL-адрес для каждого изображения И расширение с .gif
на .png
.
Как я могу этого добиться?
Комментарии:
1. jsfiddle.net/ZHUWD Решения, предоставленные либо Дарином, либо Тобиасом, работают нормально. Вы должны включить остальную часть вашего кода, которая окружает этот фрагмент выше. Существует большая вероятность, что вы столкнулись с проблемами определения масштаба.
2. @rkw Спасибо. Вы были правы
Ответ №1:
Как насчет:
$('img[src^="http://www.example.com/"]').each(function(i, value) {
$(this).attr('src', $(this).attr('src').replace('www.example.com/dir/images/dir', 'cdn.example.com/dir').replace('.gif', '.png'));
});
Ответ №2:
$('img[src^="http://www.example.com/"]').attr('src', function() {
return this.src
.replace('www.example.com/dir/images/dir', 'cdn.example.com/dir')
.replace('.gif', '.png');
});
Комментарии:
1. Он анализирует исходные изображения
2. Извините, в коде были другие проблемы, из-за которых это не сработало. Большое спасибо
Ответ №3:
newSrc.replace(".gif",".png");
Думаю, это поможет 🙂
Комментарии:
1. Что вы сделали? newSrc = newSrc.replace(«.gif»,».png»); ? Это должно сработать.