根据样式宽度+高度更改图像src

时间:2011-12-29 14:58:07

标签: jquery

我有一个asp.net mvc项目,以及一个基于url参数流出图像的函数。喜欢:/ Image / 40/100/50使用ImageID 40,100px宽和50px高流出图像。

有没有办法改变:

<img class="image" src="/Content/View?fileID=31" style="width: 500px; height: 100px; " />

要:

<img class="image" src="/Image/31/500/100" style="width: 500px; height: 100px; " /> 

以某种奇特的方式? /拉塞

2 个答案:

答案 0 :(得分:3)

我不确定我理解你为什么要这样做,但是下面的内容应该可以解决这个问题:

$("img[src^='/Content/View?fileID=']").each(function() {
    var img = $(this);
    var id = img.attr("src").substring(21);
    img.attr("src", "/Image/" + id + "/" + img.width().toString() + "/" + img.height().toString());
});

链接到示例:http://jsfiddle.net/Cfdfp/2/

此外,如果您只将image类应用于需要此转换的img元素,则可以简化上面的选择器:

$(".image").each(function() {
    var img = $(this);
    var id = img.attr("src").substring(21);
    img.attr("src", "/Image/" + id + "/" + img.width().toString() + "/" + img.height().toString());
});

链接到示例:http://jsfiddle.net/Cfdfp/1/

答案 1 :(得分:1)

这个怎么样:

$('img').each(function() {
    var $this = $(this),
        id = $this.attr('src').substr($this.attr('src').indexOf('=')+1),
        wid = $this.width(),
        hgt = $this.height();
    $this.attr('src','/Image/'+id+'/'+wid+'/'+hgt);
});