-1
なぜこのコードが機能していないのか簡単に質問します。私はそれが可変範囲と関係があるかもしれないと感じているが、何が間違っているのかを特定することはできない。私は、コンソールに印刷するdiv idを得ることができますが、id attrがステートメントの内部で定義されていないというエラーが表示されます。JavaScript ifステートメントスコープ
var game = {
currentPlayerTurn: players.firstPlayer.token,
displayToken: function() {
$('.unit').click(function() {
if(game.currentPlayerTurn === 'X' && !$(this).hasClass('selected')) {
$(this).addClass('selected').removeClass('unit').text("X");
game.currentPlayerTurn = players.secondPlayer.token;
} else if(game.currentPlayerTurn === 'O' && !$(this).hasClass('selected')) {
$(this).addClass('selected').removeClass('unit').text("O");
game.currentPlayerTurn = players.firstPlayer.token;
}
game.win($(this));
})
},
win: function(div) {
game.winCombos.forEach(function(element) {
element.forEach(function(smell){
if(smell === div.attr('id')) {
smell = game.currentPlayerTurn;
}
})})
console.log(div.attr('id'));
},
winCombos: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 4, 7], [2, 5, 8], [3, 6, 9], [1, 5, 9], [3, 5, 7]]
};
game.win();
とは思えない、 'div'引数は利用すべきですか?これはコード全体ですか? – adeneo
は少なくとも1つの要素が一致するjqueryオブジェクトですか? –
@adeneo - 私はdiv.attr( 'id')の結果が "未定義"だと思います - もしdivが空のjqueryの結果であればそうでしょう...またはdiv jqueryオブジェクトの最初の要素はidなし –