Javascript 不使用jquery替换img src属性

Javascript 不使用jquery替换img src属性,javascript,jquery-plugins,jquery-selectors,Javascript,Jquery Plugins,Jquery Selectors,我正在使用javascript替换img src属性 我的代码是 <div class="reader" id="reader1"></div> <img src="images/img_001.jpg" alt="image" id="image1"/> </div> src属性没有替换您不需要调用replace(),只需设置新的src: $("#image1").attr("src", "images/img_002.j

我正在使用javascript替换img src属性

我的代码是

<div class="reader" id="reader1"></div>    

    <img src="images/img_001.jpg" alt="image" id="image1"/>

</div> 

src属性没有替换

您不需要调用
replace()
,只需设置新的src:

$("#image1").attr("src", "images/img_002.jpg");
见:

或者你可以使用


您可以使用

$('#image1').attr('src', 'images/img_002.jpg');
如果您正在使用:

$('#image1').attr('src');

函数将返回一个字符串。字符串不会通过引用传递,而是被复制。因此修改它实际上并不会改变它。

原因是
replace
方法实际上返回新字符串,而不是就地编辑它

您可以通过以下方式实现您想要的:

$("#image1").attr("src", function(){
    return $(this).attr('src').replace("images/img_001.jpg", "images/img_002.jpg");
});
这将通过调用函数(第二个参数)为
src
属性设置一个新值。此函数实际返回被替换的值


实时示例(使用开发工具检查src):

您可以直接使用以下工具设置
src
的值:

$("#image1").attr("src", "images/img_002.jpg");


看看。

“jQuery没有replace()方法”-没有,但是javascript有@是的,我一点也没想到!编辑了我的答案。不一定,我还是使用jQuery语法来读取函数中的
src
属性。但我同意你的方法也会奏效!我相信你可以做
函数(I,src){return src.replace(…
也可以。@david-当然可以了-检查一下这个小提琴中的src:-
attr('src')
只返回一个字符串,这个字符串有一个
replace
方法!为什么?
src
是一个属性。@david:)不可信,你可以使用prop()要设置src…只需查看正在运行的演示,并应取消您的下一个选项是的,您可以。但我的问题是为什么?使用
prop
无法解决问题,因为问题是语法错误。
attr()
的使用非常正确,因为
src
是一个属性,就像OP发布的一样。@David您的问题是,为什么?src是一个属性。src是一个属性,您可以使用prop()设置属性值我也知道你可以,但是使用
prop
并不完全正确。而且,它与这个问题无关,所以我认为它对poster.jQuery(“#image1”).attr(“src”,“/assets/arrow\u small\u left.png”)没有任何价值
$('#image1').attr('src');
$("#image1").attr("src", function(){
    return $(this).attr('src').replace("images/img_001.jpg", "images/img_002.jpg");
});
$("#image1").attr("src", "images/img_002.jpg");