我正在尝试使用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') );
返回:
编辑#1 就在我即将接受解决方案的时候。我必须说,几乎所有的解决方案都在FF中运行。我试过了:
我猜其他人也会工作。但是这些解决方案都没有在IE中运行。 原因是: 当FF返回时:
IE返回:
^^请注意这里的引语
现在,可能是设置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
解决方案。
答案 0 :(得分:35)
IMO,slice
比substring
或replace
更合适。试试这个:
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(')','') )