2016-05-04 10 views
0

Ich habe versucht, etwas Code zu vereinfachen, und ich habe 4 Variablen, die eine Reihe von Bildern und schließlich gibt es eine letzte namens Karten, die alle 4 Variablen enthält.Javascript überprüft, ob das Bild im Array ist

Der andere Teil erzeugt ein zufälliges Bild von den Karten und ändert eine Leinwand in HTML.

Nun, was ich versuche zu tun, das ist, was ich Hilfe brauche, ist eine if-Anweisung zu sehen, ob das Bild von einer der 4 Variablen erzeugt wird und wenn ja, ich will es einen Wert ändern um es offensichtlich zu machen, dass es funktioniert hat.

Irgendwelche Ideen, wie dies zu erreichen ist?

HTML

<button class="open" onclick="pack100()">Open &#163;250 Cards.</button> 
<div class=card-group> 
    <img class="card" src="http://tacticalcards.esy.es/images/blank.png" id="cp1" /> 
    <p>Worth: &#163;<span id="w1">0</span></p> 
</div> 

JAVASCRIPT

var bronze = new Array("http://tacticalcards.esy.es/images/a.k.a.bronze.jpg"); 
var silver = new Array("http://tacticalcards.esy.es/images/ssgsilver.jpg"); 
var gold = new Array("http://tacticalcards.esy.es/images/a.w.p.gold.jpg"); 
var legends = new Array("http://tacticalcards.esy.es/images/karambitee.jpg"); 
var cards = new Array(bronze, silver, gold, legends); 
var cash = document.getElementById("cash").innerHTML; 
function pack100(){ 
    if (Number(cash) >= 250){ 
     var profit = 0; 
     cash = cash - 250; 
     var c1 = Math.floor(Math.random() * cards.length); 
     document.getElementById("cp1").src = cards[c1]; 
     var cp1 = document.getElementById('cp1').src; 
     if (cp1 == gold){ 
      profit += 50; 
      document.getElementById("w1").innerHTML = 500000000000000000000; 
      document.getElementById("profit").innerHTML = 500000000000000; 
     }; 
+0

'in_array()' Funktion kann Ihnen helfen. Es ist in Javascript mit PHP-Syntax implementiert: http://locutusjs.io/php/array/in_array/ –

+0

Warum erstellen Sie all diese Single-Element-Arrays? – Thomas

+0

Warum erstellen Sie ein neues Array mit nur einem Element und erstellen dann ein neues Array aus all diesen einzelnen Elementarrays? – evolutionxbox

Antwort

1

Ich verstehe nicht, es funktioniert richtig. Achten Sie darauf, die if-Anweisung und die Funktion zu schließen, aber es funktioniert. Um es deutlich zu machen, dass es sich geändert hat, können Sie alert("your message") setzen.

Eine Sache tho, anstelle der Verwendung von Arrays von 1 Element, verwenden Sie Strings, es ist besser zu bewältigen.

Ich schrieb eine HTML-Seite mit dieser und es funktioniert, ich habe gerade Cash-Variable geändert, weil Sie uns das Element mit id = cash nicht gegeben haben. Es gibt einige Bilder mit defekten Links, daher wird das Bild nicht angezeigt. Hier ist es:

<html> 
<header> 
    </header> 
<body> 
<button class="open" onclick="pack100()">Open &#163;250 Cards.</button> 
<div class=card-group> 
    <img class="card" src="http://tacticalcards.esy.es/images/blank.png" id="cp1" /> 
    <p>Worth: &#163;<span id="w1">0</span></p> 
</div> 

<script> 
var bronze = "http://tacticalcards.esy.es/images/a.k.a.bronze.jpg"; 
var silver = "http://tacticalcards.esy.es/images/ssgsilver.jpg"; 
var gold = "http://tacticalcards.esy.es/images/a.w.p.gold.jpg"; 
var legends = "http://tacticalcards.esy.es/images/karambitee.jpg"; 
var cards = new Array(bronze, silver, gold, legends); 
var cash = 350; 
function pack100(){ 
    alert("works"); 
    if (Number(cash) >= 250){ 
     var profit = 0; 
     cash = cash - 250; 
     var c1 = Math.floor(Math.random() * cards.length); 
     document.getElementById("cp1").src = cards[c1]; 
     var cp1 = document.getElementById('cp1').src; 
     if (cp1 == gold){ 
      alert("gold"); 
      profit += 50; 
      document.getElementById("w1").innerHTML = 500000000000000000000; 
      document.getElementById("profit").innerHTML = 500000000000000; 
     } 
    } 
}; 
</script> 
</body> 
</html> 
0

In Ihrem cards Array gibt es 4 "Kartentypen". Wenn ich Ihre Frage richtig aufgestellt, sind Sie Kommissionierung eine zufällige Art eines zufälligen Index mit:

var c1 = Math.floor(Math.random() * cards.length); 

c1 jetzt eine Reihe hält (in Ihrem Beispiel eine Zahl zwischen 0 und 3). Um den Typ zu überprüfen, die auf diese Nummer entspricht, Sie nicht tun:

if (c1 == gold) { /* ... */ } 

Dieses eine number zu einem array vergleicht. Stattdessen werden Sie zu tun haben:

if (cards[c1] === gold) { /* ... */ } 

Diese überprüft, ob die array innerhalb cards bei Index c1ist die gleiche Array als gold Array.

+0

Ich habe dies eingefügt, aber es funktioniert immer noch nicht? –

+0

Sie müssen das Attribut "src" auch anders einstellen.Ich versuchte zu erklären, wie meine Antwort funktioniert. Ich habe dir nicht den vollen Code gegeben, den du kopieren kannst, um alles zu reparieren. Um 'src' zu setzen, müssen Sie einen anderen Index angeben: z. B .:' document.getElementById ("cp1"). Src = cards [c1] [0] ' – user3297291

Verwandte Themen