Ich habe nach einer Lösung für dieses Problem gesucht, konnte aber nichts bestimmtes finden. Ich schreibe ein Javascript-Speicherkartenspiel mit einem Kartenspiel, für das ich individuelle Bilder habe. In der html Tabelle, die gedruckt wird, habe ich ein img mit einem onlick Ereignis, das meine selectCard() Funktion aufruft. Diese Funktion nimmt das Argument (img id) und verwendet diese ID, um die img src von back.gif auf die entsprechende Frontkarte zu ändern (wie in einem Array namens preloadImages gespeichert)Img src Argument in Funktion. Bild nicht angezeigt
Mein Problem ist, dass wenn dies passiert das Bild src wird [object% 20HTMLImageElement] .png statt 0.png oder 23.png oder welche Karte geklickt wurde.
Kann mir bitte jemand helfen? Codeblock unter
//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";
}
}
Dies ist, was ich ursprünglich versucht, es funktioniert auch nicht. Ich habe ein Array mit den Bildern vorinstalliert und möchte sie wenn möglich von dort ziehen. –
Oh, ich verstehe. Sie müssen immer noch die ID/den Klassennamen aus dem Array abrufen. Versuchen Sie die Antwort von Sting – Mashpoe
Diese Lösung funktioniert, wenn wir if (imageRef.src.match ("back.gif")) { verwenden, aber es immer noch nicht das Bild aus dem Array preloadImages ziehen. aber es ist machbar. Vielen Dank! –