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


244

Как я могу изменить srcатрибут imgтега с помощью JavaScript?

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

сначала у меня есть src по умолчанию, который является "../template/edit.png", и я хотел изменить его с помощью "../template/save.png" onclick.

ОБНОВЛЕНО: вот мой html 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
Махди Джазини

64

Вы можете использовать как 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"
Тушар Гаурав

35

если вы используете библиотеку JQuery, используйте эту инструкцию:

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

24
Вопрос не требует ответа jQuery, не включает тег jQuery и не предполагает, что можно использовать jQuery.
Popnoodles

10
Сказать людям использовать jQuery, когда эквивалентная функция встроена прямо в Javascript, не имеет смысла. Каждый вопрос JS не требует ответа jQuery. Это решение - препятствие, которое мешает людям узнать, что уже может сделать vanilla 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.