2016-04-18 5 views
1

私はすべてのサイコロを加算するサイコロのゲームを作成しようとしています。私は複数のサイコロを同時に開くことができるようにしたい。それ自身のウィンドウ内のサイコロの合計を取得します。すべてのウィンドウではありません

私の問題は、自分のサイコロを数えるローラーの代わりに、すべてのサイコロが一緒に追加されていることです。あなたは、私がここにこのフィドルに何を意味するかわかります

https://jsfiddle.net/txdq7upw/9/

私はそれが「サイコロ」と呼ばれるすべての要素を取っているので、問題は、ここでは、このコードではあると思う:

function getSumDiceValue() { 
var dice = document.getElementsByClassName("dice"); 
var diceTotal = 0; 
for (var i = 0; i < dice.length; i++) { 
    diceTotal += Number(dice[i].getAttribute("data-diceValue")); 
}; 

return diceTotal; 

} ;

私の推測では、何とか自分のサイコロにサイコロを関連付ける必要があると私は推測していますが、その方法についてはわかりません。

私はJavaScriptがとても新しく、できるだけ多くのコード例が大好きです。

+0

記事でJavaScriptの閉鎖についての詳細を読むことができます、あなたが使っているようには見えません。あなたがしなければならないことは、getSumDiceValue関数を呼び出して、要約したいdicewrapperを渡し、関数の内部で、クラス・ダイスのすべての要素を取得するのではなく、このクラスのdicewrapperのすべての子を取得することですダイス。だから、関数を関数getSumDiceValue(ラッパー){...などに変更し、それを呼び出すときはいつでもそれを渡してください。 –

答えて

0

あなたはすべての仕事を終えました。ただ、サイコロは、特定の閉鎖に合計カウントするgetSumDiceValue()の代わりdocumentdiceWindowWrapper変数を使用します。

function getSumDiceValue() { 
    var dice = diceWindowWrapper.getElementsByClassName("dice"); 
    // ... 
} 

あなたは、私はjQueryの中で簡単にこのための擬似コードを書くことができHow do JavaScript closures work?

+0

偉大な、魅力のように働いた。だから遠いまだ遠い:)解決策は私に考えさせて、私は私が持っていた別の問題を修正してしまった!乾杯 –

関連する問題