以编程方式更改img标记的src

如何使用javascript更改img标签的src属性?

<img src="../template/edit.png" name="edit-save" alt="Edit" />

首先我有一个默认的src,它是"../template/edit.png"我想用"../template/save.png"onclick。

< p >更新: 下面是我的HTML onclick:

<a href="#" onclick="edit()"><img src="../template/edit.png" id="edit-save" alt="Edit" /></a>

和我的JS

function edit()
{
var inputs = document.myform;
for(var i = 0; i < inputs.length; i++) {
inputs[i].disabled = false;
}
}

我已经尝试在edit()中插入这个,它可以工作,但需要单击图像两次

var edit_save = document.getElementById("edit-save");
edit_save.onclick = function(){
this.src = "../template/save.png";
}
945889 次浏览

给你的img标签一个id,然后你就可以

document.getElementById("imageid").src="../template/save.png";
<img src="../template/edit.png" name="edit-save" onclick="this.src = '../template/save.png'" />

使用您提供的片段(并且不假设元素的父元素),您可以获得对图像的引用

document.querySelector('img[name="edit-save"]');

然后改变SRC

document.querySelector('img[name="edit-save"]').src = "..."

这样就可以达到你想要的效果

var img = document.querySelector('img[name="edit-save"]');
img.onclick = function() {
this.src = "..." // this is the reference to the image itself
};

否则,正如其他人建议的那样,如果你能控制代码,最好将id赋值给图像,并使用getElementById获取引用(因为这是检索元素的最快方法)。

现在好了

function edit()
{
var inputs = document.myform;
for(var i = 0; i < inputs.length; i++) {
inputs[i].disabled = false;
}


var edit_save = document.getElementById("edit-save");


edit_save.src = "../template/save.png";
}

如果你使用JQuery库,请使用以下说明:

$("#imageID").attr('src', 'srcImage.jpg');

给你的图像一个id。然后你可以在你的javascript中这样做。

document.getElementById("blaah").src="blaah";

您可以使用此语法更改任何元素的任何属性的值。

在这种情况下,因为你想要改变元素的第一个值的src,你不需要建立一个函数。你可以在元素中修改:

<a href='#' onclick='this.firstChild.src="../template/save.png"')'>
<img src="../template/edit.png" id="edit-save"/>
</a>

有几种方法可以做到这一点。你也可以创建一个函数来自动化这个过程:

function changeSrc(p, t) { /* where p: Parent, t: ToSource */
p.firstChild.src = t
}

然后你可以:

<a href='#' onclick='changeSrc(this, "../template/save.png");'>
<img src="../template/edit.png" id="edit-save"/>
</a>
你可以使用jquery和javascript方法: 如果你有两个图像,例如:

.
<img class="image1" src="image1.jpg" alt="image">
<img class="image2" src="image2.jpg" alt="image">

1) Jquery方法- >

$(".image2").attr("src","image1.jpg");

2) Javascript方法- >

var image = document.getElementsByClassName("image2");
image.src = "image1.jpg"

对于这种类型的问题,jquery是一个简单的使用。

可能是因为你有一个标签,比如标签的父标签。 这就是为什么你必须点击两次图像。< / p > 对我来说,解决方案是: http://www.w3schools.com/js/tryit.asp?filename=tryjs_intro_lightbulb < / p >