2014-02-11 3 views
0

Я знаю, что это действительно основной вопрос и простите меня за то, что я даже спросил, но я не могу понять, насколько это правильно для меня.Заменить строку в url с помощью JQuery

Я использую JQuery, чтобы получить URL-адрес из одного изображения src и загрузить его в другое изображение src, которое я отлично работаю. Однако мне нужно заменить 100x75 часть URL-адреса примерно на 800x600, чтобы он увеличил изображение.

Как бы я это сделал?

Вот пример: Say Im захватывая исходный URL изображения с JQuery и это выглядит следующим образом: http://example.com/images/Something_cool-100x75.png мне это нужно, чтобы выглядеть следующим образом: http://example.com/images/Something_cool-800x600.png

jQuery(document).ready(function($) { 
    // this will pull the image I need 
    var get_image = $('img.attachment-shop_thumbnail').attr('src'); 

    //this will assign the image I pulled above to where I need it to go but I need to replace the 100x75 in the filename to 800x600 
    $("#sale_img").attr("src", get_image); 
}); 

Так что, если вы предоставляете мог ответить вы скажите мне, как это работает, потому что я также необходимо изменить .png в .jpg на некоторых из них, а .. Просто не уверен, как это

+0

с этим кодом и тегом jQuery является несправедливым, его можно сузить до простого преобразования stringX в строкуY – ajax333221

ответ

1

простой Javascript замены может делать свою работу

var get_image = $('img.attachment-shop_thumbnail').attr('src'); 
get_image = get_image.replace("100x75","800x600"); 

таким же образом использовать его для замены .png в .jpg. поэтому она приходит как

var get_image = $('img.attachment-shop_thumbnail').attr('src').replace("100x75","800x600")..replace(".png",".jpg"); 
1
var old = "http://example.com/images/Something_cool-100x75.png"; 
var new = old.replace("100x75","800x600"); 
new = new.replace(".png",".jpg"); 
alert(new); 

Alerts "http://example.com/images/Something_cool-800x600.jpg"

1

Попробуйте

var get_image = $('img.attachment-shop_thumbnail').attr('src').replace('100x75', '800x600'); 
2

Вы можете использовать регулярное выражение:

string.replace(/\d+x\d+/, '800x800') 

Основном, это найти цифру (\d) 1 или более раз (+), а затем «x» и найти другую цифру одно или более раз.

Это изменение для значения, которое вы указали.

, как для .jpg, вы можете по-прежнему использовать регулярное выражение: string.replace(/\.png$/, '.jpg')

Fiddle: http://jsfiddle.net/8mYYZ/

0

Я думаю, что лучше реализация будет иметь отдельный класс CSS для каждого изображения (если не много из них). Вместо того, чтобы беспокоиться о строковых манипуляциях с источниками изображений, вы можете просто изменить класс.

Смежные вопросы