Modifica a livello di codice l'src di un tag img


244

Come posso cambiare l' srcattributo di un imgtag usando javascript?

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

all'inizio ho uno src predefinito che è "../template/edit.png" e volevo cambiarlo con "../template/save.png" onclick.

AGGIORNATO: ecco il mio html onclick:

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

e il mio JS

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

Ho provato a inserirlo all'interno di edit (), funziona ma è necessario fare doppio clic sull'immagine

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

Risposte:


307

Dai un ID al tuo tag img, quindi puoi farlo

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

16
Per cose semplici come impostare il valore di un input o modificare un'immagine src ( soprattutto quando si utilizzano elementi con ID), si dovrebbe davvero cercare di evitare jQuery, poiché la chiamata è molto più lenta della pura chiamata JS
Brian Leishman

2
@ william44isme e la nostra pagina verrà caricata più lentamente di prima. penso che jQuery sia utile solo per i siti Web che usano lo stesso codice, molto di più. ad esempio se utilizziamo il codice sopra riportato più di 30 o 50 volte. quindi è necessario utilizzare jQuery
Mahdi Jazini il

64

Puoi usare sia il metodo jquery che il metodo javascript: se hai due immagini per esempio:

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

1) Metodo Jquery->

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

2) Metodo Javascript->

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

Per questo tipo di problema jquery è quello semplice da usare.


21
Il poster non ha mai indicato alcun interesse per una soluzione jQuery. Né il metodo jQuery è più semplice. Non rispondere a domande JS con soluzioni jQuery (a meno che il post non indichi che lo desiderano). Confonde solo le persone che cercano di imparare JS.
metaColin

6
getElementByClassName restituisce la raccolta di tutti gli elementi. Dobbiamo anche menzionare l'indice dell'elemento. var image = document.getElementsByClassName ("image2") [0]; image.src = "image1.jpg"
Tushar Gaurav

35

se usi la libreria JQuery usa queste istruzioni:

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

24
La domanda non richiede una risposta jQuery, non include un tag jQuery o suggerisce che è possibile utilizzare jQuery.
Popnoodles,

10
Dire alla gente di usare jQuery quando una funzione equivalente è integrata in Javascript non ha senso. Ogni domanda JS non richiede una risposta jQuery. Questa soluzione è un kludge che impedisce alle persone di imparare cosa può già fare Vanilla JS.
metaColin

27

è a posto adesso

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


7

In questo caso, poiché desideri modificare il srcprimo valore del tuo elemento, non è necessario creare una funzione. Puoi modificare questo diritto nell'elemento:

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

Hai diversi modi per farlo. Puoi anche creare una funzione per automatizzare il processo:

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

Allora puoi:

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

6

Con lo snippet che hai fornito (e senza fare ipotesi sui genitori dell'elemento) potresti ottenere un riferimento all'immagine con

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

e cambia l'src con

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

in modo da poter ottenere l'effetto desiderato con

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

altrimenti, come altri hanno suggerito, se hai il controllo del codice, è meglio assegnare idun'immagine all'immagine e ottenere un riferimento getElementById(poiché è il metodo più veloce per recuperare un elemento)


6

Dai alla tua immagine un ID. Quindi puoi farlo nel tuo javascript.

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

È possibile utilizzare il metodo ".___" per modificare il valore di qualsiasi attributo di qualsiasi elemento.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.