2013-05-28 83 views
1

我正在創建Connect 4遊戲並創建了一個td元素表,其中每個td都有一個行和col值,即(1,2)。 這裏:如何移動到下一個td並檢查Css類?

for(var i = 0; i < rows; i++) { 
    $('table').append('<tr></tr>'); 
    for(var j = 0; j < cols; j++) { 
    $('table').find('tr').eq(i).append('<td></td>'); 
    $('table').find('tr').eq(i).find('td').eq(j).attr('data-row', i).attr('data-col', j); 
} 

我也有,單擊時(顏色改變每一次點擊,因爲它是2個玩家)一個CSS類分配給每個TD碼。然後,我想移動到右側(右側,左側,頂部和底部)的td,然後檢查該td是否具有相似的顏色等級,檢查者需要轉到右邊的4個td之後發現是否有一個類似顏色的td序列(即一行中的3個紅色tds不能實現任何東西,但是4)我想使用類似於我已有的代碼的東西,因爲我通常可以理解它。 這是,p.s.我知道IF語句是完全不正確的順序,我用一個for循環(X = 1; X < 4; X ++):

var win = false; 
if(win == false) { 
    if($(this).hasClass('tdred')) { 
     var colindex = parseInt($(this).attr('data-col')) + 1; 
     var chosen = $('table tr').eq(colindex).find('td'); 
     //^Moves to next td right of 
     //begin check if has class tdred 
     if($(chosen).hasClass('tdred')) { 
      x++; 
      alert(data - col + "is red"); 
      var colindex = parseInt($(this).attr('data-col')) + 1; 
      if(x = 4) { 
       win == true; 
      } 
      if(x < 4) 
     } 
    } else { 
     alert("not red"); 
    } 
} 
} else if(win == true) 
    Alert("You win"); 
} 

希望你喜歡的if語句可怕的積累,我相信它是純粹挫敗的結果。

+0

參見['的jQuery的.next()'](HTTP: //api.jquery.com/next/) –

+0

'if(x = 4)'中的等號應該是'=='(或'===')。但我不明白你遇到什麼麻煩。是用jQuery選擇某些單元格嗎?例如,您可以使用像'td [data-row = 1] [data-col = 2]'這樣的選擇器。 – bfavaretto

+0

只是一個提示,你並不需要data-row和data-col,你可以直接通過在DOM元素tr/td中使用rowIndex和cellIndex來訪問行列索引,或者如果你想做它使用jQuery使用$('tr').index()和$('td').index(),儘管這樣做效率較低。 –

回答

相關問題