2016-05-29 23 views
2

この問題の解決策を探しましたが、具体的なものは見つかりませんでした。私は個々の画像を持っているカードのデッキを使用して、JavaScriptのメモリカードゲームを書いています。印刷されたHTMLテーブルには、selectCard()関数を呼び出すonlickイベントを持つimgがあります。この関数は引数(img id)をとり、そのidを使用してimg srcをback.gifから対応するフロントカード(preloadImagesという配列に格納されている配列)に変更します。関数のImg src引数です。画像を表示していません

私の問題は、 0.pngまたは23.pngの代わりに[object%20HTMLImageElement] .pngになるか、またはいずれかのカードがクリックされたものになります。

誰かが助けてくれますか?以下のコードブロック

//sets up the table for the game 
function setGame(){ 
      document.getElementById("gameArea").innerHTML = ""; 
      var newTable = "<table border ='1' align='center'><tr>"; 
       for(i=0; i<4; i++){ 
         newTable +="<tr>"; 
         for(j=0; j<13; j++){ 
           var cardId = j+i*13; 
           newTable += "<td><img id = "+cardId+" src='back.gif' width='100' height='140' onclick='selectCard("+cardId+")'/></td>"; 
           } 
           newTable += "</tr>"; 
       } 
       newTable += "</table>"; 
      document.getElementById("gameArea").innerHTML = newTable; 
      } 

//selectCard Function 
function selectCard(Id){ 
      var imageRef = document.getElementById(Id); 
      if (imageRef.src.match("back.gif")) { 
        imageRef.src = preloadImages[imageRef]+'.png'; 
        } 
        else { 
         imageRef.src = "back.gif"; 
        } 
     } 

答えて

0

私はかなり確信しています[object%20HTMLImageElement]は、画像のIDではなくHTML要素です。あなたが正しくしようとしていることを理解している場合は、画像のIDを取得し、画像のsrcをその値に設定する前に拡張子 ".png"を最後に追加しています。あなたのコードで何をしているのかは、imageRefのsrcをIDではなくimageRef自身に変更することです。これを試してみてください:

function selectCard(Id){ 
    var imageRef = document.getElementById(Id); 
    if (imageRef.src == "back.gif") { 
     imageRef.src = Id + ".png"; 
    } else { 
     imageRef.src = "back.gif"; 
    } 
} 
+0

を使用することによってこの問題を解決することができました。私は画像がプリロードされた配列を持っており、可能であればそこから引き出したいと考えています。 –

+0

ああ、そうだ。配列からID /クラス名を取得する必要があります。スティングの答えを – Mashpoe

+0

で試してください。このソリューションは、 if(imageRef.src.match( "back.gif")){ を使用しても動作しますが、まだpreloadImages配列から画像を取得していません。しかしそれは実行可能です。ありがとう! –

0

私はこれは私がもともと、それはまた、動作しませんしようとしたもので、次のコード行

imageRef.src = preloadImages[Id].src; 
関連する問題