まず、これを間違った方法で行っていることをお勧めします。ゲームの HTML/CSS 表現からゲームの状態を判断しています。ゲームの状態を表すオブジェクトを作成し、このオブジェクトを使用して HTML/CSS 表現に必要な操作を決定することをお勧めします。これにより、ここでやろうとしていることがずっと簡単になります。
たとえば、次のようなことが言えるようになるかもしれません...
if (gamestate.wordscomplete == 3) {//fade board//}
...これは、HTML を掘り下げるよりもはるかに快適です。しかし、私は脱線します...
それが正しい場合、クラスは手紙wordglow2
に追加されます。グリッド内のそれぞれに単語を含めることができます。そう...<tr>
function gamestate() {
var words = []; //new array to store completed word counts
var wordscompleted = 0; //overall word count
//create an entry for 3,4,5, and 6 letter words
for (var wc = 3; wc <=6 ; wc++) {words[wc] = 0;}
$('table.tablestyle > tr').each( function(i,el) {
// get the number of complete letters in this row
var wordlength = $(el).find('.wordglow2').length;
if (wordlength >=3 && wordlength <= 6) {
// a completed word should not be outside of this range anyway
words[wordlength]++; //increment the appropriate counter
wordscompleted++; //increment overall counter
}
});
//return a gamestate object
return { wordscompleted : wordscompleted , words : words };
};
上記の関数は、ゲーム テーブルの各行を調べて、wordglow2
セルの数をカウントします。これが 3 ~ 6 の場合、全体のカウンターがインクリメントされ、各ワード長のカウンターもインクリメントされます。
次のように使用できます...
var gs = gamestate();
gs.wordscompleted //total words completed
gs.words[3] //total 3-letter words completed
gs.words[4] //total 4-letter words completed etc etc
アップデート
http://jsfiddle.net/HZX6k/6/
このフィドルは、グローバル オブジェクトを使用してゲームの状態を追跡し、カウントをインクリメントし、3、4、5、6 文字カウントの単語ごとにカウントを増やします。