繁体   English   中英

如何基于数组更新复选框状态?

[英]How to update checkboxes state based on an array?

我正在研究以下代码。 为什么我无法根据selected阵列更新自动检查框状态?

 var selected = [134,135,136,137,138,139,140,141,142,143,144]; $.each(selected, function(index, value){ $("input[type='checkbox'][value"+ value.member_key+ "]").prop("checked", true); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" name="vehicle" value="133">133<br> <input type="checkbox" name="vehicle" value="134">134<br> <input type="checkbox" name="vehicle" value="135">135<br> <input type="checkbox" name="vehicle" value="136">136<br> <input type="checkbox" name="vehicle" value="137">137<br> <input type="checkbox" name="vehicle" value="138">138<br> <input type="checkbox" name="vehicle" value="139">139<br> <input type="checkbox" name="vehicle" value="140">140<br> <input type="checkbox" name="vehicle" value="141">141<br> <input type="checkbox" name="vehicle" value="142">142<br> <input type="checkbox" name="vehicle" value="143">143<br> <input type="checkbox" name="vehicle" value="144">144<br> <input type="checkbox" name="vehicle" value="145">145<br> <input type="checkbox" name="vehicle" value="146">146<br> 

传递的value上没有名为member_key属性。 由于您是在数字数组上实现.each() ,因此在每次迭代中,回调函数都会将数字本身作为第二个参数。 因此,只需使用value

 var selected = [134,135,136,137,138,139,140,141,142,143,144]; $.each(selected, function(index, value){ $("input[type='checkbox'][value="+value+"]").prop("checked", true); }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" name="vehicle" value="133">133<br> <input type="checkbox" name="vehicle" value="134">134<br> <input type="checkbox" name="vehicle" value="135">135<br> <input type="checkbox" name="vehicle" value="136">136<br> <input type="checkbox" name="vehicle" value="137">137<br> <input type="checkbox" name="vehicle" value="138">138<br> <input type="checkbox" name="vehicle" value="139">139<br> <input type="checkbox" name="vehicle" value="140">140<br> <input type="checkbox" name="vehicle" value="141">141<br> <input type="checkbox" name="vehicle" value="142">142<br> <input type="checkbox" name="vehicle" value="143">143<br> <input type="checkbox" name="vehicle" value="144">144<br> <input type="checkbox" name="vehicle" value="145">145<br> <input type="checkbox" name="vehicle" value="146">146<br> 

 var selected = [134,135,136,137,138,139,140,141,142,143,144]; $.each(selected, function(index, value){ //include the = and fix the value being compared $("input[type='checkbox'][value="+ value+ "]").prop("checked", true); }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" name="vehicle" value="133">133<br> <input type="checkbox" name="vehicle" value="134">134<br> <input type="checkbox" name="vehicle" value="135">135<br> <input type="checkbox" name="vehicle" value="136">136<br> <input type="checkbox" name="vehicle" value="137">137<br> <input type="checkbox" name="vehicle" value="138">138<br> <input type="checkbox" name="vehicle" value="139">139<br> <input type="checkbox" name="vehicle" value="140">140<br> <input type="checkbox" name="vehicle" value="141">141<br> <input type="checkbox" name="vehicle" value="142">142<br> <input type="checkbox" name="vehicle" value="143">143<br> <input type="checkbox" name="vehicle" value="144">144<br> <input type="checkbox" name="vehicle" value="145">145<br> <input type="checkbox" name="vehicle" value="146">146<br> 

其他答案正在评论

value.member_key

我认为这是将代码复制到stackoverflow中的错误。 我猜您在实际代码中缺少的部分是单词“值”与其实际值之间的等号。

您的代码将产生

[value133]

而你需要

[value=133]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM