2016-05-06 23 views
0

HTMLファイルと画像はすべて同じフォルダにあります。だから基本的に私はこれが動作するはずです知っている。 src属性を "file:///C:/Users/ATZ/Desktop/seats/available.png"として使用する場合にのみ機能します。私は ../available.pngを使ってみましたが、それでも動作しません。画像ソースを切り替えることができません

function changeImage() { 
    if (document.getElementById('seat0').src == "available.png") { 
    document.getElementById('seat0').src = "selected.png" 
    } else if (document.getElementById('seat0').src == "selected.png") { 
    document.getElementById('seat0').src = "available.png" 
    } else { 
    document.getElementById('error').innerHTML = "Please select Another seat. That seat has been occupied"; 
    } 
} 
+0

を修正します。あなたはjavascriptがどこから実行されているかによって異なります。 – Rash

+1

'document.getElementById( 'seat0')。src'が返す値を見たことがありますか? –

+1

@Rash:* "javascriptがどこから実行されているかによって異なります" * JavaScriptの実行場所とは関係ありません。画像はHTMLファイルを基準にしてどこに配置されているかとだけ関係します。 –

答えて

1

問題はおそらく、.srcがファイル名になることが予想されるという事実です。ただし、絶対パスが指定されていない場合でも、ブラウザは絶対パスに基づいてファイルを参照する必要があります。 IndexOfを使用すると、ファイル名がパスに存在するかどうかを確認できます。

function changeImage(){ 

    var img_obj = document.getElementById('seat0'); 

    if (img_obj.src.indexOf("available.png") > -1) 

     { img_obj.src="selected.png"} 

    else if (img_obj.src.indexOf("selected.png") > -1) 

     {img_obj.src="available.png"} 

    else { document.getElementById('error').innerHTML= 

    "Please select Another seat. That seat has been occupied"; } } 

はフェリックスの観察@ごとに更新され、これは、パスの問題で私のタイプミス

+1

私はあなたが 'document.getElementById( 'seat0')。src.indexOf(...)'を意味すると信じています。また、同じ要素を4回問い合わせる必要もありません。 –

+0

あなたは正しいです、それを指摘していただきありがとうございます。コードが更新されました – imvain2

+0

@FelixKling this works.but imgのsrc属性が "un_available.png"である場合、onclickはelse条件を実行する代わりに画像を "selected.png"に変更します。 – FLoat

関連する問題