287

如何使用 javascript 更改标签的src属性?img

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

9 回答 9

364

给你的img标签一个id,然后你可以

document.getElementById("imageid").src="../template/save.png";
于 2012-07-30T13:18:51.033 回答
79

您可以同时使用 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 是最简单易用的。

于 2015-02-12T17:58:28.823 回答
38

如果您使用 JQuery 库,请使用以下指令:

$("#imageID").attr('src', 'srcImage.jpg');
于 2013-12-03T13:52:12.503 回答
31

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";                              
}
于 2012-07-30T14:33:07.237 回答
12

给你的图片一个id。然后你可以在你的javascript中做到这一点。

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

您可以使用此语法来更改任何元素的任何属性的值。

于 2014-07-18T23:31:52.800 回答
9
<img src="../template/edit.png" name="edit-save" onclick="this.src = '../template/save.png'" />
于 2012-07-30T13:20:50.920 回答
8

在这种情况下,当您想要更改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>
于 2014-10-03T17:24:20.017 回答
8

使用您提供的代码段(并且不对元素的父级做出假设),您可以使用以下方式获得对图像的引用

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

否则,正如其他建议的那样,如果您可以控制代码,最好将 an 分配id给图像以获取引用getElementById(因为它是检索元素的最快方法)

于 2012-07-30T13:21:17.507 回答
4

也许是因为你有一个标签,比如标签的父级。这就是为什么你必须点击两次图像。

对我来说,解决方案是: http ://www.w3schools.com/js/tryit.asp?filename=tryjs_intro_lightbulb

于 2017-01-19T09:06:22.813 回答