この問題の解決策を探しましたが、具体的なものは見つかりませんでした。私は個々の画像を持っているカードのデッキを使用して、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";
}
}
を使用することによってこの問題を解決することができました。私は画像がプリロードされた配列を持っており、可能であればそこから引き出したいと考えています。 –
ああ、そうだ。配列からID /クラス名を取得する必要があります。スティングの答えを – Mashpoe
で試してください。このソリューションは、 if(imageRef.src.match( "back.gif")){ を使用しても動作しますが、まだpreloadImages配列から画像を取得していません。しかしそれは実行可能です。ありがとう! –