Програмно змінити src тегу img


242

Як я можу змінити srcатрибут imgтегу за допомогою javascript?

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

спочатку у мене є src за замовчуванням, який є "../template/edit.png", і я хотів змінити його на "../template/save.png" onclick.

ОНОВЛЕНО: ось мій htc onclick:

<a href='#' onclick='edit()'><img src="../template/edit.png" id="edit-save"/></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";
    }

Відповіді:


307

Дайте свій тег img ідентифікатор, тоді ви можете

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

16
Для таких простих речей, як встановлення значення вводу або зміна src зображення ( особливо, коли ви використовуєте елементи, які мають ідентифікатори), ви дійсно повинні намагатися уникати jQuery, оскільки виклик відбувається набагато повільніше, ніж чистий дзвінок JS
Брайан Лейшман

2
@ william44isme і наша сторінка буде завантажуватися повільніше, ніж раніше. Я думаю, що jQuery корисний лише для веб-сайтів, які використовують той же код, ще більше. наприклад, якщо ми використовуємо вищезгаданий код більше 30 або 50 разів. тому потрібно використовувати jQuery
Махді Джазіні

62

Можна використовувати як метод 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 є простим у використанні.


21
Плакат ніколи не виявляв інтересу до рішення jQuery. Також метод jQuery не простіший. Не відповідайте на питання JS за допомогою рішень jQuery (якщо повідомлення не вказує, що вони цього хочуть) Це просто заплутує людей, які намагаються вивчити JS.
metaColin

6
getElementByClassName повертає колекцію всіх елементів. Нам також потрібно згадати індекс елемента. var image = document.getElementsByClassName ("image2") [0]; image.src = "image1.jpg"
Тушар Гаурав

34

якщо ви використовуєте бібліотеку JQuery, використовуйте цю інструкцію:

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

24
Питання не вимагає відповіді на jQuery, включіть тег jQuery або не припускайте, що добре використовувати jQuery.
Popnoodles

10
Розповідати людям використовувати jQuery, коли еквівалентна функція вбудована прямо в Javascript, не має сенсу. На кожне запитання JS не потрібна відповідь jQuery. Це рішення - це хитрість, яка заважає людям дізнатися про те, що вже може зробити ванільний JS.
metaColin

27

зараз добре

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

У цьому випадку, оскільки ви хочете змінити 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>

6

За наданим вами фрагментом (і не роблячи припущень щодо батьків елемента) ви можете отримати посилання на зображення із

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(оскільки це найшвидший метод для отримання елемента)


6

Дайте своєму образу ідентифікатор. Тоді ви можете зробити це у своєму JavaScript.

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

Ви можете використовувати метод ".___", щоб змінити значення будь-якого атрибута будь-якого елемента.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.