2016-05-04 11 views
0

である場合、私はいくつかのコードを簡素化しようとしていると私は画像の配列を保持し、最終的にすべての4つの変数を保持しているカードと呼ばれる最後の1がある4つの変数を持ってチェックします。Javascriptが画像が配列

それ以外の部分は、カードからランダムな画像を生成し、htmlでキャンバスを変更します。

ここで私が助けが必要なことは、ifステートメントを使って4つの変数のいずれかから生成されたイメージかどうかを確認し、値を変更したいのですそれが働いたことを明白にする。

これを達成するためのアイデアはありますか?

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()'関数が役に立ちます。これはPHPの構文でjavascriptで実装されています:http://locutusjs.io/php/array/in_array/ –

+0

なぜこれらすべての単一要素配列を作成しますか? – Thomas

+0

なぜ1つのアイテムだけで新しい配列を作成し、それらの単一のアイテム配列から新しい配列を作成するのですか? – evolutionxbox

答えて

1

わかりません、正しく動作します。 if文と関数を閉じるのに注意してください。しかし、それはうまくいきます。それが変更されていることを明らかにするために、alert("your message")を置くことができます。

1つの要素の配列を使用するのではなく、文字列を使用すると、それはもっと受け入れがたいです。

あなたはid = cashで私たちの要素を与えていなかったので、私はちょうど現金変数を変更し、私はこれでHTMLページを書き、それが動作します。リンクが壊れている画像がいくつかあるので、画像は表示されません。ここにあります:

<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

あなたcardsアレイでは4、 "カードタイプ" があります。私が正しくあなたの質問を得た場合は、ランダムなインデックス使用してランダムなタイプを選んだ:

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

c1を今(あなたの例では、0と3の間の数)番号を保持しています。この番号に対応するタイプを確認するには、あなたはないことができます。

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

これはarraynumberを比較します。代わりに、あなたは何をする必要があります:gold配列と同じ配列あるインデックスc1cards内部array場合

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

これをチェックします。

+0

私はこれをまだ入れていますが、それでも動作しませんか? –

+0

また、 'src'属性を別に設定する必要があります。私は物事が私の答えをどのように働かせるか説明しようとした私はすべてを修正するために貼り付けをコピーできる完全なコードを与えていませんでした。 'src'を設定するには、別のインデックスを指定する必要があります(例:' document.getElementById( "cp1")。src = cards [c1] [0] ' – user3297291

関連する問題