Javascript 无法检查正方形是否为空Tictatoe游戏jquery

Javascript 无法检查正方形是否为空Tictatoe游戏jquery,javascript,jquery,tic-tac-toe,Javascript,Jquery,Tic Tac Toe,我正在编写一个Tictatcoe游戏,但是我用来检查用户是否点击了一个空方块或已经填充的方块的代码对我来说不起作用。请看我犯了什么错误 function startgame(){ var $board=$('#board'); $('div.square').remove(); for(var i=0;i<9;i++) $board.append($('<div/>').addClass('square').addClass('empty'))

我正在编写一个Tictatcoe游戏,但是我用来检查用户是否点击了一个空方块或已经填充的方块的代码对我来说不起作用。请看我犯了什么错误

function startgame(){
    var $board=$('#board');
    $('div.square').remove();

    for(var i=0;i<9;i++)
    $board.append($('<div/>').addClass('square').addClass('empty'));
    $('div.square.empty').click(function(){
        $this=$(this);

        if($('div.square.empty').length==0){

            displayendmsg();
        }
        else {
            $this.removeClass('empty');

            if(currentplayer=="X")
                $this.append($('<div><img src="cross.jpg">       </div>').addClass('cross').css('visibility','visible'));
            else
                $this.append($('<div><img src="circle.jpg">  </div>').addClass('circle').css('visibility','visible'));

            flipturn();
        }


    });
};
函数startName(){
var$board=$(“#board”);
$('div.square').remove();
对于(var i=0;i我放了一些东西来激活它。您只为空元素(选择器:div.square.empty)捕获事件,这样您只会找到空元素,您无法在内部对.empty length进行测试,因为此函数只对空元素作出反应。无论如何,我修改了您的函数,如下所示:

function startgame(){
    var $board=$('#board');
    $('div.square').remove();
    for(var i=0;i<9;i++) {
        $board.append($('<div/>').addClass('square empty'));
    }
    $board.on('click','.square',function() {
        var elm = $(this);
        if(elm.hasClass('empty')) {
            elm.removeClass('empty');
            if(player === 'x') {
               elm.addClass('x');
               player = 'c';
            } else {
               elm.addClass('c'); 
               player = 'x';
            }
        }
    });
}
函数startName(){
var$board=$(“#board”);
$('div.square').remove();

对于(var i=0;i或者,您可以检查该字段是否有文本

if($.trim($("handler").text()) == '') //Then it is obviously empty.

您不会删除
empty
类。在您的小提琴播放器中
c
始终能够单击所有方块,即使是已经单击的方块。添加
elm.removeClass('empty');
作为
if(elm.hasklass('empty')中的最后一行{
以确保正方形在单击后被锁定。
请参见:是的,我同意div.empty.length的说法,但是“$('div.square.empty')有什么问题。单击(function()”thanks@axel.michel一把小提琴+1。非常好,看起来不错。