web-dev-qa-db-ja.com

プログラムでimgタグの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";
    }
208
Jam Ville

今大丈夫

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";                              
}
27
Jam Ville

あなたのimgタグにidを与えてください。

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

あなたがjqueryとjavascriptメソッドの両方を使用することができます:例えば、あなたが2つのイメージを持っているならば:

<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を使うのが簡単です。

46
chandanjha

jQueryライブラリを使用する場合は、この命令を使用してください。

$("#imageID").attr('src', 'srcImage.jpg');
35
<img src="../template/edit.png" name="edit-save" onclick="this.src = '../template/save.png'" />
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>
7
Marcelo Camargo

あなたが提供したスニペットを使って(そして要素の親についての仮定をすることなしに)、あなたは画像への参照を得ることができます

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
fcalderan

あなたの画像にidを付けます。その後、あなたのJavaScriptでこれを行うことができます。

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

".___"メソッドを使用して、任意の要素の任意の属性の値を変更できます。

5
Ben

タグの親のようなタグがあるからかもしれません。だからあなたは二度画像をクリックしなければならない。

私にとっての解決策はこれです: http://www.w3schools.com/js/tryit.asp?filename=tryjs_intro_lightbulb

4
Po Po