使用jquery更改表格单元格的背景颜色

时间:2016-01-14 16:52:40

标签: javascript php jquery html

首先,我想解释一下我的任务是什么。我不得不使用填充了1到100的数字的php创建一个10X10表,并随机选择一个表格单元格。用户任务是通过单击表来查找该单元格。每次单击后,用户点击之间的距离和所选单元格将打印到文本区域。代码工作正常,但我需要做的另一件事是如果单击的单元格不是正确的单元格,则将单元格的背景颜色更改为红色,如果用户猜到单元格,则将其更改为绿色。我试图将调用更改实现为函数,但是在第二次猜测之后调用它,而不是在第一次调用之后调用。有人可以帮帮我吗?

HTML / PHP代码:

<!DOCTYPE html>
<html>
<head>

<title>find cell</title>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<style>
table{border-collapse:collapse;}
td{width:50px;height:50px;border: 2px solid #000000; background-color:#ff6600;color:white;text-align:center;}
h2{color:grey;}
</style>

<script type="text/javascript">
function check(x,y){
    $.get("check.php?x="+x+"&y="+y, function(answer){
    $("#res").prepend(answer+"\n");
    });
}
</script>


</head>

<body>

<h1>Find cell...</h1>
<h2>(Refresh site to start again.)</h2>

<table>
<?php
session_start();

for($j=0;$j<10;$j++){
            echo "<tr>";
            for($i=0;$i<10;$i++){
                    echo "<td onclick='check(".$j.",".$i.");'>".($j*10+($i+1))."</td>";
                }
            echo "</tr>";
        }

$_SESSION["rx"]=rand(0,9);
$_SESSION["ry"]=rand(0,9);
$_SESSION["p"] = 0;
?>
</table>

<br>

<form method="GET">
<textarea rows="30" cols="50" id="res" style="overflow:scroll;"></textarea>
</form>

</body>

<html>

check.php文件:

<?php
if(isset($_GET["x"]) && isset($_GET["y"])){
    session_start();
    $_SESSION["p"]++;
    if($_GET["x"] == $_SESSION["rx"] && $_GET["y"] == $_SESSION["ry"]){
        echo "Victorious after ".$_SESSION["p"]." tries.";
    }
    else{
        $distance = sqrt(($_SESSION["rx"]-$_GET["x"])*($_SESSION["rx"]-$_GET["x"])+($_SESSION["ry"]-$_GET["y"])*($_SESSION["ry"]-$_GET["y"]));
        echo intval($distance);
    }
}
?>

2 个答案:

答案 0 :(得分:0)

使用on-click事件添加具有不同颜色的css类。

答案 1 :(得分:0)

你碰巧想要像this这样的东西吗?

HTML

<h1>Find cell...</h1>
<h2>(Refresh site to start again.)</h2>

<table>
  <tbody>
    <tr>
      <td data-j="0" data-i="0">1</td>
      <td data-j="0" data-i="1">2</td>
    </tr>
    <tr>
      <td data-j="1" data-i="0">3</td>
      <td data-j="1" data-i="1">4</td>
    </tr>
  </tbody>
</table>

<br>

<form method="GET">
  <textarea rows="30" cols="50" id="res" style="overflow:scroll;"></textarea>
</form>

脚本

var correctJ = 1; // Cell #3
var correctI = 0; // Cell #3

$("td").click(function() {
  if ($(this).attr('data-j') == correctJ && $(this).attr('data-i') == correctI) {
    $(this).css("background-color", "green");
  } else {
    $(this).css("background-color", "red");
  }
});