如何使用jQuery设置图像src

Rak*_*yal 43 javascript jquery image src

我试图使用jQuery更改图像src属性

jQuery("#imageID").attr('src','http://localhost:8080/images/1/myImage.png' );
Run Code Online (Sandbox Code Playgroud)

使用上面的代码我可以更改src属性,但当我尝试这个: -

jQuery("#imageID").attr('src',jQuery("#imageBlock").css('background-image') );
Run Code Online (Sandbox Code Playgroud)

我无法更改src.

提供

alert ( jQuery("#imageBlock").css('background-image') );
Run Code Online (Sandbox Code Playgroud)

收益:

url(http:// localhost:8080/images/1/myImage.png)

编辑#1 就在我即将接受解决方案时.我必须说,几乎所有的解决方案都在FF中运行.我试过了:

  • 片(4,-1);
  • split("(")[1]>然后替换(")","");

我猜其他人也会工作.但是这些解决方案都没有在IE中运行.原因是:当FF返回时:

url(http:// localhost:8080/images/1/myImage.png)

IE返回:

url(" http:// localhost:8080/images/1/myImage.png ")

^^介意这里的报价

现在,可能是设置src attr的通用方法.我是否需要测试浏览器是否为IE?

这是工作代码.

var src = "";
    if ( jQuery.browser.msie ) {
        src = jQuery("#imageBlock").css('background-image').slice(5,-2);        
    }else{
        src = jQuery("#imageBlock").css('background-image').slice(4,-1);
    }   
    jQuery("#imageID").attr('src', src );
Run Code Online (Sandbox Code Playgroud)

我真的不喜欢它:x.如果有另外一个解决方案,请告诉我,否则我会立即接受slice解决方案.

And*_*y E 35

IMO,slicesubstring或更合适replace.试试这个:

jQuery("#imageID").attr(
    'src',
    jQuery("#imageBlock").css('background-image').slice(4,-1)
);
Run Code Online (Sandbox Code Playgroud)

在这里,你正在切片之间url().有关方法的详细说明,请参见切片上的MDC .


Dar*_*rov 7

你需要提取网址部分:

var backgroundImage = $("#imageBlock")
    .css('backgroundImage')
    .replace(/"/g,"")
    .replace(/url\(|\)$/ig, "");
jQuery("#imageID").attr('src', backgroundImage);
Run Code Online (Sandbox Code Playgroud)