2013-05-28 3 views
1

Я создаю игру Connect 4 и создал таблицу элементов td, где каждый td имеет значение строки и столбца, то есть (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); 
} 

У меня также есть код, который присваивает класс CSS каждый тд при нажатии (цвет изменяется каждый щелчок, как для 2-х игроков). Затем я хотел бы перейти к td с правой стороны (справа, слева, сверху и снизу в конце), а затем проверить, имеет ли тот td аналогичный класс цвета, контролер должен перейти к 4 следующим td's вправо, чтобы найдите, есть ли последовательность похожих цветов td (т. е. 3 красных tds в строке ничего не достигают, однако 4 делает) Я хотел бы использовать что-то похожее на код, который у меня уже есть, потому что я его вообще понимаю. Вот он, p.s. Я знаю последовательность IF утверждения совершенно неправильно, я использовал для цикла (х = 1, х < 4; х ++):

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"); 
} 

Надеюсь, вам понравится ужасное накопление, если заявления, я верю в это является результатом чистого разочарования.

+0

См [ 'JQuery .next()'] (HTTP: //api.jquery.com/next/) –

+0

Значения в 'if (x = 4)' должны быть '==' (или '==='). Но я не понимаю, с чем вы столкнулись. Выбирает некоторые ячейки с помощью jQuery? Например, вы можете использовать селектор типа 'td [data-row = 1] [data-col = 2]'. – bfavaretto

+0

Просто подсказка, вам действительно не нужны строки данных и данных, вы можете получить доступ к индексу строки и столбца напрямую, используя: rowIndex и cellIndex в DOM Elements tr/td, или в случае, если вы хотите сделать он с jQuery использует $ ('tr'). index() и $ ('td'). index(), хотя это будет менее эффективно. –

ответ

Смежные вопросы