如何创建if语句来检查是否有很多对象样式== display:none?

时间:2013-10-16 20:29:15

标签: function if-statement call

我正在制作一个记忆匹配游戏,你可以将两张牌翻过来让它们匹配。

我正在使用简单的if语句来完成它,如下所示:

if(click == 2)  //denotes two cards being clicked
{
    if(flippedArray[1].src === flippedArray[0].src)  // if click 1 == click 2 then refer to function 'delayMatch' which sets click 1 and 2 cards to not be displayed
    {
        window.setTimeout(function() { delayMatch() }, 500);        
        console.log("EQUAL");
        score = +25000;
    }
    else
    {
        window.setTimeout(function() { delayNoMatch() }, 500); // if click 1 != click 2 then display card.png 
        console.log("NOT EQUAL");
        score = -1999;
    }
        function delayMatch()  //function for matching pairs
    {
    flippedArray[0].style = "display:none;";
    flippedArray[1].style = "display:none;";

    }
        function delayNoMatch()  //function for non-matching pairs
    {
    flippedArray[0].src = "card.png";
    flippedArray[1].src = "card.png";   
    }


    click = 0;  // when clicked two cards set click back to zero    
}

正如你可以看到两张牌是否匹配,他们被设置为显示:无。我想要做的是链接到一个“结束游戏”html页面,一旦所有36个div设置为display:none或者我想一旦函数delayMatch()被调用了18次。

我完全不知道如何做到这一点。

我的目标是这样的:

flippedArray [0]和flippedArray [1]只是一个临时数组,用于检查当前正在播放的两张牌是否匹配。

我在想这样的事情:

endGameCounter =0;
    endGameCounter++; //in the matching if-statement

then    if(endGameCounter == 18)
    {
    location.href='link here'
    }

2 个答案:

答案 0 :(得分:0)

尝试

function GameIsOver(){
  for (var i = 0; i < allCards.length; i++) {
    if(allCards[i].style.display === 'none')return false;
  }
  return true;
}

答案 1 :(得分:0)

您可以在页面内使用一个变量进行计数。 如果您在JSP中执行此操作,JSTL可以在此处为您提供帮助。

用于设置变量,只是检查时间值。

c:set var="COUNT" value="SOMETHING"/>