[英]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.