2012-02-09 60 views
1

我想在我的if语句中使用三个条件。这里是我的代码:如何在Jquery添加三个条件

<script> 
    jQuery(document).ready(function() { 
     var num_one; var num_two; var num_three; 
     $("#control").attr("disabled", "disabled"); 

     $('#col-1 li').click(function(){ num_one = true; getState();}); 
     $('#col-2 li').click(function(){ num_two = true; getState();}); 
     $('#col-3 li').click(function(){ num_three = true; getState();}); 

     function getState(){ 
      if ((num_one == true) & (num_two == true) & (num_three == true)) { 
       $("#control").removeAttr("disabled"); 
      } 
     } 

     /*$('#col-1 li').click(function(){$("#control").removeAttr("disabled");*/ 
    }); 

    /**$("#enableBtn").click(function() { 
     $("#clearBtn").removeAttr("disabled"); 
    });**/ 
</script> 

这是工作,当我用只有两个条件:if ((num_one == true) & (num_two == true))但是当我添加第三个条件这是行不通的。如何在if语句中添加三个条件?

回答

1

您需要用&&(逻辑AND)替换&(按位与)。另外,因为你检查的变量的类型是布尔型的,所以你不需要相等性检查。

if (num_one && num_two && num_three) { 

Working example

+0

它适用于'如果(num_one && num_two){'和'如果(num_one && num_three){',但并没有对'如果(num_one && num_two && num_three)工作{ ' – ahkeno 2012-02-09 16:41:41

+0

在此处运行良好:http://jsbin.com/eyogoj/edit – 2012-02-09 16:44:20

1

的和运营商是&&&。改变它,它应该工作。

+0

我曾试过&&,但它仍然无效。 – ahkeno 2012-02-09 16:33:56

+0

col-3基于从表中选择的col-1和col-3检索数据作为子列表。因此,所有评论代码在正常情况下工作正常。我添加了'$('#col-3 li')。live (“click”,function(){num_three = true; getState();});'它现在可以工作。 – ahkeno 2012-02-09 23:45:56

4

您正在寻找双连字符&&,而不是单个&(这是Bitwise AND运算符,不是你正在寻找的东西)。您也可以不写x == true。只是写x是不够的:

if (num_one && num_two && num_three) { 
    ... 
相关问题