Javascript 如何使用jQuery设置图像src
我正在尝试使用jQuery更改image src属性Javascript 如何使用jQuery设置图像src,javascript,jquery,image,src,Javascript,Jquery,Image,Src,我正在尝试使用jQuery更改image 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("#image
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()
编辑#1
就在我即将接受解决方案的时候。我必须说,几乎所有的解决方案都在FF中起作用。我试过:
- 切片(4,-1)李>
- 拆分(“”[1]>然后替换(“”),“”)李>
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。如果有其他解决方案,请告诉我,否则我将立即接受
切片解决方案。您需要去掉url(
并关闭)
部分才能正常工作
所以url(http://localhost:8080/images/1/myImage.png)
变成
http://localhost:8080/images/1/myImage.png
您可以使用子字符串、正则表达式替换或您选择的任何方法来实现这一点
也许:
jQuery(“#imageID”).attr('src',jQuery(“#imageBlock”).css('background-image').replace('url(','').replace('),''),'')
IMO,切片
比子字符串
或替换
更合适。试试这个:
jQuery("#imageID").attr(
'src',
jQuery("#imageBlock").css('background-image').slice(4,-1)
);
在这里,您将在url(
和)
之间分割字符串。有关该方法的详细说明,请参见上的MDC。这是因为url()字符串被包裹在它周围。您需要从字符串中删除它,例如使用replace函数
var bgimg = jQuery("#imageBlock").css('background-image').replace('url(', '');
bgimg.replace(')', '');
您需要提取url部分:
var backgroundImage = $("#imageBlock")
.css('backgroundImage')
.replace(/"/g,"")
.replace(/url\(|\)$/ig, "");
jQuery("#imageID").attr('src', backgroundImage);
顺便问一下,这是什么?replace(/url\(|\)$/ig,”)
它将字符串的url()部分替换为“”,这样您就可以自己获得图像的位置。是否需要剥离“
呢?我一直认为浏览器返回了url字符串的解析表示形式,没有引号?如果我错了,正则表达式不应该是/[”]/g
?浏览器不必以任何特定格式返回CSS值,因此您必须接受任何可能的规则声明方式。其中包括在中带有CSS反斜杠转义的裸字符串。(这个正则表达式不会处理这些内容,它还会删除字符串url(
url中的任何位置,因为在开始处没有^
锚定。)如果您通过删除”
来修改它以允许引用它们,您也会在中用撇号打断任何URL。这就是为什么您可能不应该尝试从CSS样式中提取URL的原因。@Rakesh Juyal:是的。实际上我自己在IE中编码了95%。slice方法在ECMAScript第三版中定义,并且在MSDN:[这][1]简单而中肯。[1]: