使用jQuery来改变链接中的参数

时间:2011-10-05 06:23:41

标签: jquery parameters replace

我正在使用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部分更改为w=300,并将h=400更改为h=200。这是我正在使用的图像大小调整脚本,我希望能够使用我想要的动态值来更改输入框中该链接的高度和宽度参数。

我不擅长正则表达式,任何人都可以提供示例/建议吗?

感谢。

3 个答案:

答案 0 :(得分:2)

无论使用什么版本的jQuery,都是如此。所有版本都可以设置元素属性值。这里的主要观点是使用Regex来解析这个值并更新params或者只是从头构建链接。

这是链接构建器::))

$('#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/

答案 1 :(得分:0)

没有测试过这段代码,所以请注意......

模板字符串:

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 ); 

有意义吗?

答案 2 :(得分:0)

我最终使用了:

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

我认为正则表达式可能会更聪明,但这种方式也很有效。

感谢您的建议。