如果/ else语句在jQuery中不起作用,我认为应该如此

时间:2017-10-06 20:10:31

标签: jquery if-statement

我有练习编写一个井字游戏。我只是在遇到这个问题时尝试了一些想法。我的函数不起作用,如果是/ else语句则非常简单。

function game(){
if(e = "x"){     
  d.text("o");      
   }else{
  c.text("o");      
   }  
  };

无论我点击什么字段,都会将“o”返回到 d 。此外,当我将if(e = "x")更改为if(e == "x")时,它始终会将“o”返回到 c

我会欣赏任何暗示。谢谢。

$(document).ready(function() {
  var a = $("#a"),
    b = $("#b"),
    c = $("#c"),
    d = $("#d"),
    e = $("#e"),
    f = $("#f"),
    g = $("#g"),
    h = $("#h"),
    i = $("#i");

  function game() {
    if (e = "x") {
      d.text("o");
    } else {
      c.text("o");
    }
  };


  function humanIsX() {
    $(".field").on("click", function() {
      $(this).text("x");
      game();
    });
  };
  humanIsX();
});
.field {
  display: inline-block;
  height: 100px;
  width: 100px;
  font-size: 110px;
  text-align: center;
  border: 2px solid gray;
  border-radius: 5%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="third_page">
  <div class="row" id="first-row">
    <div class="field" id="a"></div>
    <div class="field" id="b"></div>
    <div class="field" id="c"></div>
  </div>
  <div class="row" id="second-row">
    <div class="field" id="d"></div>
    <div class="field" id="e"></div>
    <div class="field" id="f"></div>
  </div>
  <div class="row" id="third-row">
    <div class="field" id="g"></div>
    <div class="field" id="h"></div>
    <div class="field" id="i"></div>
  </div>
</div>

3 个答案:

答案 0 :(得分:2)

与往常一样,<{>分配的=比较==之间存在巨大差异。

另一个问题是e不是像"x"那样的值,而是你需要询问的DOM对象:

if (e.text() == "x")

您可能希望将其重新编写为某种数组而不是一堆不可伸缩的变量。然后,您可以以编程方式更好地使用它,完全跳过if。分支较少的代码更容易预测。

例如,将您的单元格命名为#cell-1#cell-9,然后您可以使用$('#cell-' + cellNo).text('o')来引用它们。

答案 1 :(得分:0)

将条件更改为

if (e=="x") {

答案 2 :(得分:0)

$(&#34;#e&#34;)返回一个html对象。如果你想看看是否有&#34; x&#34;在div中,这样做$(&#34;#e&#34;)。text()==&#34; x&#34;。

function game() {
  if (e.text() == "x") {
    d.text("o");
  } else {
    c.text("o");
  }
};
  1. 将.text添加到e
  2. 改变&#34; =&#34;到&#34; ==&#34;