Javascript if语句问题,以及如何在jquery中验证颜色
我在写一个井字游戏。规则是一样的,有一个红色球员和一个蓝色球员。唯一的区别是在玩家的第四步,他们的第一个盒子将恢复为白色,所以每个玩家最多只能有三个标记为他们的盒子(红色或蓝色) 这是我的html代码:Javascript if语句问题,以及如何在jquery中验证颜色,javascript,jquery,html,Javascript,Jquery,Html,我在写一个井字游戏。规则是一样的,有一个红色球员和一个蓝色球员。唯一的区别是在玩家的第四步,他们的第一个盒子将恢复为白色,所以每个玩家最多只能有三个标记为他们的盒子(红色或蓝色) 这是我的html代码: <html> <head> <link type="text/css" rel="stylesheet" href="game.css"/> <script src="http://ajax.googleapis.
<html>
<head>
<link type="text/css" rel="stylesheet" href="game.css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="game1.js" ></script>
<title> TicTacToe </title>
</head>
<center>
<body>
<h1> Tic Tac Toe! </h1>
<table>
<tr>
<td><canvas id = "canvas1" onclick="canvasClicked(1)"></canvas></td>
<td><canvas id = "canvas2" onclick="canvasClicked(2)"></canvas></td>
<td><canvas id = "canvas3" onclick="canvasClicked(3)"></canvas></td>
</tr>
<tr>
<td><canvas id = "canvas4" onclick="canvasClicked(4)"></canvas></td>
<td><canvas id = "canvas5" onclick="canvasClicked(5)"></canvas></td>
<td><canvas id = "canvas6" onclick="canvasClicked(6)"></canvas></td>
</tr>
<tr>
<td><canvas id = "canvas7" onclick="canvasClicked(7)"></canvas></td>
<td><canvas id = "canvas8" onclick="canvasClicked(8)"></canvas></td>
<td><canvas id = "canvas9" onclick="canvasClicked(9)"></canvas></td>
</tr>
</table>
<button type="button" id = "reset">Reset</button>
</body>
</center>
</html>
我想应该是这样
if (c.style.color == "white") {
它适用于单个的=
,但当我将它设为双等于=
时,它就不起作用了,这是为什么?(另外,如果(c.style.color=white),它在中检查什么?是检查它有颜色,还是将它设置为白色?两者都有?)当它只有一个=
时,它不检查它是否为白色,所以我可以单击它一次,使其为红色,然后再次单击它使其为蓝色。这不应该发生在==
;但是有了==
画布就会保持白色
另外,我正在尝试实现jQuery,因此我想将第一条if语句进一步修改为:
$(document).ready(function(){
$("canvas").click(function(){
if ($(this).css("background-color) == "white"){
但是,我没有成功,我也尝试过:
if ($(this).css("background-color) == "rgb(256, 256, 256)"){
也没有成功。我添加了一个警报($(this).css(“背景色”)
,以确保我单击了各个画布(似乎我在单击之后出现了一个警报/弹出框),但似乎从未调用if语句。我想这可能与if语句不起作用有关
任何反馈/建议都将不胜感激。对代码其他部分的任何建议也将非常好。谢谢。当我调查这个问题时,我发现您的语句“c.style.color”或“c.style.backgroundcolor”总是返回空值。这就是为什么您的if条件不能正常工作的原因
您只需在if条件中添加一个或多个语句,如下所示,即可正常工作
if (c.style.backgroundColor == "white" || c.style.backgroundColor == "") {
}
谢谢,如果对您有帮助,请将其标记为正确。if(c.style.color=“white”)
覆盖c.style.color的值,结果成功:true if语句中的=
将c.style.color
的值设置为white
,而=
检查c.style.color
是否为white
。赋值的返回值(=)始终是指定的值。在您的情况下,剥离的if将看起来像if(“white”)
。在JS中,这将被视为true。谢谢各位,那么当我放置if(c.style.color==“white”)时,有没有关于if语句不起作用的建议
,因为在白色画布中没有变成红色/似乎有什么作用?我只是尝试将其更改为c.style.background
,但仍然没有。哇,谢谢!你认为这是为什么?我在.css中将画布的背景设置为background:white
。这真的很有趣。谢谢!它现在可以工作了。
if ($(this).css("background-color) == "rgb(256, 256, 256)"){
if (c.style.backgroundColor == "white" || c.style.backgroundColor == "") {
}