如何使用jQuery设置图像的src
我正在尝试使用jQuery来更改图像的src属性
jQuery("#imageID").attr('src','http://localhost:8080http://img.dovov.com1/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正当我即将接受解决scheme。 我必须说,几乎所有的解决scheme在FF工作。 我试过了:
- 片(4,-1);
- split(“(”)[1]> then replace(“)”,“”);
我想其他人也会工作。 但是没有一个解决scheme在IE中工作。 原因是:FF返回时:
url( http:// localhost:8080 / images / 1 / myImage.png )
IE返回:
url(“ http:// localhost:8080 / images / 1 / myImage.png ”)
^^介意在这里引用
现在,有什么可以通用的方式来设置src attr。 我是否需要testing浏览器,如果它是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。 如果还有其他解决scheme,请告诉我,否则我会立即接受slice
解决scheme。
国际海事组织, slice
比substring
或replace
更合适。 尝试这个:
jQuery("#imageID").attr( 'src', jQuery("#imageBlock").css('background-image').slice(4,-1) );
在这里,你正在切割url(
和)
之间的string。 有关该方法的详细说明,请参阅片上的MDC。
您需要提取url部分:
var backgroundImage = $("#imageBlock") .css('backgroundImage') .replace(/"/g,"") .replace(/url\(|\)$/ig, ""); jQuery("#imageID").attr('src', backgroundImage);
这是因为url()string缠绕在它周围。 您需要从string中去除它,例如使用replace函数…
var bgimg = jQuery("#imageBlock").css('background-image').replace('url(', ''); bgimg.replace(')', '');
你需要去掉url(
和closures)
部分才能工作。
所以url(http://localhost:8080http://img.dovov.com1/myImage.png)
变
http://localhost:8080http://img.dovov.com1/myImage.png
你可以做一个子string,正则expression式replace或你select的任何方法。
http://www.w3schools.com/jsref/jsref_replace.asp
也许:
jQuery("#imageID").attr('src',jQuery("#imageBlock").css('background-image').replace('url(','').replace(')','') )