Programmatically change the src of an img tag

Programmatically change the src of an img tag

How can I change the src attribute of an img tag using javascript?

at first I have a default src which is “../template/edit.png” and I wanted to change it with “../template/save.png” onclick.
UPDATED:
here’s my html onclick:

and my JS
function edit()
{
var inputs = document.myform;
for(var i = 0; i < inputs.length; i++) { inputs[i].disabled = false; } } I've tried inserting this inside the edit(), it works but need to click the image twice var edit_save = document.getElementById("edit-save"); edit_save.onclick = function(){ this.src = "../template/save.png"; }

Solutions/Answers:

Solution 1:

Give your img tag an id, then you can

document.getElementById("imageid").src="../template/save.png";

Solution 2:

You can use both jquery and javascript method:
if you have two images for example:

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

1)Jquery Method->

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

2)Javascript Method->

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

For this type of issue jquery is the simple one to use.

Solution 3:

if you use the JQuery library use this instruction:

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

Solution 4:

its ok now

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";                              
}

Solution 5:

<img src="../template/edit.png" name="edit-save" onclick="this.src = '../template/save.png'" />

Solution 6:

In this case, as you want to change the src of the first value of your element, you have no need to build up a function. You can change this right in the element:

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

You have several ways to do this. You can also create a function to automatize the process:

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

Then you can:

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

Related:  Understand Backbone.js REST calls