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


как я могу изменить на img тег с помощью javascript?

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

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

обновление: вот мой html onclick:

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

и это

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

9 ответов:

дайте вашему тегу img идентификатор, тогда вы можете

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

вы можете использовать как 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 является простым в использовании.

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

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

теперь все в порядке

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";                              
}
<img src="../template/edit.png" name="edit-save" onclick="this.src = '../template/save.png'" />

в этом случае, как вы хотите изменить 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>

с фрагментом, который вы предоставили (и без предположений о родителях элемента), вы можете получить ссылку на изображение с

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 к изображению a получить ссылку с getElementById (так как это самый быстрый метод для получения элемент)

дайте вашему изображению идентификатор. Тогда вы можете сделать это в JavaScript.

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

вы можете использовать ".___ "метод изменения значения любого атрибута любого элемента.

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

для меня решение это: http://www.w3schools.com/js/tryit.asp?filename=tryjs_intro_lightbulb