Использование jQuery для изменения параметров в ссылке - PullRequest
0 голосов
/ 05 октября 2011

Я использую jQuery 1.3.2, и у меня есть поле ввода на моей странице, которое предоставляет ссылку для копирования, например: http://mydomain.com/resize.php?src=http://www.externaldomain.com/content/Uploads/everydaymail.jpg&w=533&h=400&zc=1. Я хотел бы использовать jQuery и иметь возможность изменить, например, w=533 part на w=300, а также h=400, чтобы изменить на h=200. Это сценарий изменения размера изображения, который я использую, и я хочу иметь возможность изменять параметры высоты и ширины из этой ссылки в поле ввода с моими требуемыми значениями, которые являются динамическими.

Я плохо разбираюсь в регулярных выражениях, кто-нибудь может привести пример / предложение?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 05 октября 2011

Неважно, какая версия jQuery будет использоваться.Вся версия может устанавливать значения атрибутов элемента.Главное здесь - использовать Regex для анализа этого значения и обновления параметров или просто создать ссылку с нуля.

Вот компоновщик ссылок::)

$('#build').click(function() {

    var src = $('#src').val();
    var w = $('#w').val();
    var h = $('#h').val();

    var link = "http://mydomain.com/resize.php?src=" + src + "&w=" + w + "&h=" + h + "&zc=1";

    $('#link').attr('src', link).text(link);

});

$('#replace').click(function() {

    var src = $('#src').val();
    var w = $('#w').val();
    var h = $('#h').val();

    var link = $('#link').attr('src')

    link = link.replace(/w=\d{1,4}/i, "w=" + w)
               .replace(/h=\d{1,4}/i, "h=" + w);

    $('#link').attr('src', link).text(link);

});

Код: http://jsfiddle.net/wzc8F/10/

0 голосов
/ 05 октября 2011

В итоге я использовал:

var newWVal = $('#inputfield').val().replace(/w=[\d\.]+&/g, 'w='+imageWidth+'&');
var newFinalVal = newWVal.replace(/h=[\d\.]+&/g, 'h='+imageHeight+'&');
$('#inputfield').val(newFinalVal);

Я думаю, что регулярное выражение могло бы быть немного умнее, но так оно и работает.

Спасибо за ваши предложения.

0 голосов
/ 05 октября 2011

Не проверял этот код, поэтому будьте осторожны ...

Строка шаблона:

var str = "http://mydomain.com/resize.php?src=http://www.externaldomain.com/content/Uploads/everydaymail.jpg&w=XXX&h=YYY&zc=1";  

Используйте по мере необходимости:

str = str.replace("w=XXX", "w=your_value_here"); 
str = str.replace("h=YYY", "h=your_value_here"); 

HTH.

РЕДАКТИРОВАТЬ:

Хорошо, предполагая динамические переменные:

var height = 42;
var width = 42;

str = str.replace( "w=XXXX", "w=" + width ); 
str = str.replace( "h=YYYY", "h=" + height ); 

Имеет смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...