以编程方式更改img标记的src

时间:2012-07-30 13:17:29

标签: javascript html5 image src

如何使用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";
    }

9 个答案:

答案 0 :(得分:277)

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

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

答案 1 :(得分:47)

您可以同时使用jquery和javascript方法: 如果您有两个图像,例如:

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

1)Jquery方法 - &gt;

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

2)Javascript方法 - &gt;

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

对于这种类型的问题,jquery是一个很简单的问题。

答案 2 :(得分:35)

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

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

答案 3 :(得分: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";                              
}

答案 4 :(得分:8)

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

答案 5 :(得分: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 :(得分: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的引用(因为它是检索的最快方法)元素)

答案 7 :(得分:5)

为您的图片添加ID。然后你可以在你的javascript中执行此操作。

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

您可以使用&#34; .___&#34;更改任何元素的任何属性值的方法。

答案 8 :(得分:4)

也许是因为你有一个像标签的父标签。 这就是你必须点击两次图像的原因。

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