if语句在javascript中失败

时间:2014-02-15 23:25:33

标签: javascript if-statement

现在几个小时我想做一个简单的游戏,但是一个if语句失败了:

function checkDiagonaal() {
    if (document.getElementById("11").src.indexOf("o.png") &&
        document.getElementById("22").src.indexOf("x.png") &&
        document.getElementById("33").src.indexOf("o.png"))
    {
        winnaar = true;
    }
}

条件不正确,但变量winnaar设置在true上。我不明白我做错了什么。很可能只是一个小错误。

我也试过这段代码:

if(document.getElementById("11").src === "images/o.png") 

但是返回false(即使条件为真)。我想知道为什么?

3 个答案:

答案 0 :(得分:1)

在这种情况下使用...indexOf(...) >= 0

答案 1 :(得分:1)

当找不到值时,indexOf返回-1,-1是真值

答案 2 :(得分:0)

来自MDN(很棒的资源!):

  

“indexOf()方法返回调用String中的索引   第一次出现的指定值[...] 的对象返回-1   如果找不到该值。“

当语句变大时,它们变得有点难以理解,现在可能没问题,但如果你需要添加更多的检查,我建议采用不同的方法:

function checkDiagonaal() {
  var ids = [11,22,33];
  var strs = ['o.png','x.png','o.png'];
  var winnar = ids.every(function(id,i) {
    return document.getElementById(id).src.indexOf(strs[i]) > -1;
  });
}