2015-08-15 73 views
0

我有一个复选框,每个值。我想自动检查复选框。在这种情况下,我使用逻辑&,但它不起作用。 示例:值总和= 5:食物和水被选中,总和= 4:水被选中,总和= 3:糖果和食品检查,....如何从jquery中的值自动检查复选框?

var sum = 5; 
 
var list = document.getElementsByClassName("checkbox1"); 
 
for (var i = 0; list[i]; ++i) 
 
{ 
 
if ( (sum & list[i].val()) == list[i].val()) 
 
{ 
 
    $(this).prop('checked', true); 
 
} 
 
}
<table id="div_table"> 
 
    <tbody> 
 
     <tr> 
 
      <td> 
 
       <input type="checkbox" class="checkbox1" id="candy" value="2" /> 
 
      </td> 
 
      <td>Candy</td> 
 
     </tr> 
 
     <tr> 
 
      <td> 
 
       <input type="checkbox" class="checkbox1" id="food" value="1" /> 
 
      </td> 
 
      <td>Food</td> 
 
     </tr> 
 
     <tr> 
 
      <td> 
 
       <input type="checkbox" class="checkbox1" id="water" value="4" /> 
 
      </td> 
 
      <td>Water</td> 
 
     </tr> 
 
    </tbody> 
 
</table>

谢谢家伙。

回答

1

当前复选框dom对象位于for循环中的list[i]。您可以将对象转换为jQuery的,然后设置检查属性为true:

for (var i = 0; list[i]; ++i){ 
var currentchckbox = $(list[i]); 
    if ((sum & currentchckbox.val()) == currentchckbox .val()) { 
    currentchckbox.prop('checked', true); 
    } 
} 
+0

,它似乎不工作,未捕获的类型错误:列表[我] .VAL不是一个函数 –

+0

@BrianCrist,使用'$(名单[ i))' – Satpal

+0

'if((sum&list [i] .val())== list [i] .val())' –

相关问题