如何使用jQuery设置图像src

时间:2010-02-02 10:41:10

标签: javascript jquery image src

我正在尝试使用jQuery

更改图像src属性
jQuery("#imageID").attr('src','http://localhost:8080/images/1/myImage.png' );

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

jQuery("#imageID").attr('src',jQuery("#imageBlock").css('background-image') );

我无法更改src。

提供

alert ( jQuery("#imageBlock").css('background-image') );

返回:

  

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

我真的不喜欢它:x。如果还有其他解决方案,请告诉我,否则我会立即接受slice解决方案。

4 个答案:

答案 0 :(得分:35)

IMO,slicesubstringreplace更合适。试试这个:

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

在这里,您要在url()之间切换字符串。有关方法的详细说明,请参阅slice上的MDC。

答案 1 :(得分:7)

您需要提取网址部分:

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

答案 2 :(得分:2)

这是因为url()字符串缠绕在它周围。您需要从字符串中删除它,例如使用替换函数...

var bgimg = jQuery("#imageBlock").css('background-image').replace('url(', '');
bgimg.replace(')', '');

答案 3 :(得分:0)

您需要删除url(并关闭)部分才能使其正常工作。

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

成为

http://localhost:8080/images/1/myImage.png

您可以使用子字符串,正则表达式替换或您选择的任何方法来执行此操作。

http://www.w3schools.com/jsref/jsref_replace.asp

也许:

jQuery("#imageID").attr('src',jQuery("#imageBlock").css('background-image').replace('url(','').replace(')','') )