选中复选框(如果 json 对象中存在)
Check checkboxes if present in json object
我有这个json对象:
[{"id_distrib":"1"},{"id_distrib":"44"},{"id_distrib":"4"}]
我想选中这些复选框:
<input id="1" class="cb_distrib_linux" type="checkbox" value="1">
Achlinux
<input id="2" class="cb_distrib_linux" type="checkbox" value="2">
Aurox
<input id="3" class="cb_distrib_linux" type="checkbox" value="3">
BackTrack
。 中新...
我这样做:
success: function(listes_distrib)
{
for(var distrib in listes_distrib)
{
$('#all_distrib_linux input:checkbox[value='+listes_distrib[distrib]+']').attr('checked', true);
}
},
我所有的复选框都被选中了。
listes_distrib[distrib] 的警报给我的是"["而不是 id。
提前感谢您的帮助。
你可以这样做:
$('#all_distrib_linux input:checkbox[value=' + listes_distrib[distrib].id_distrib +']').prop('checked', true);
您必须使用以下方法从 json 对象中获取值:
listes_distrib[0].id_distrib // return 1
listes_distrib[1].id_distrib // return 44
listes_distrib[2].id_distrib // return 4
另外,使用 .prop()
而不是 .attr()
如.prop() API Documentation
中所述:
在jQuery 1.6之前,
.attr()
方法有时采用属性值 在检索某些属性时考虑在内,这可能会导致 不一致的行为。从 jQuery 1.6 开始,.prop()
方法提供了一个 显式检索属性值的方法,同时.attr()
检索 属性。
尝试
success: function (listes_distrib) {
$.each(listes_distrib, function (_, item) {
$('#all_distrib_linux input:checkbox[value="' + item.distrib + '"]').prop('checked', true);
})
},
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 验证会话中是否存在对象's数组
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 对象为null或IE9中存在未定义错误
- 如何通过json对象选项卡中的Id来检查对象是否存在
- underline-js:将键对象与数组键对象进行比较,如果存在,则移除现有的添加新的
- 查找数组's按属性不存在于另一个数组中的对象
- javascript检查对象存在
- 用javascript在对象上创建不存在的方法
- 为什么没有从数组中存在的对象中删除属性
- 我的无引用 JavaScript 对象存在在哪里以及存在多长时间
- 没有窗口对象存在 webpack nodejs
- 在从Flash调用javascript对象之前,请确保该对象存在
- JavaScript错误未定义对象,尽管对象存在
- JS Ajax onreadystatechange是没有定义的,虽然对象存在
- 对象存在吗?JavaScript对象
- 对象存在,但在youtube响应中仍未定义
- 仅当对象存在时,才从 javascript 中的 html 表单对象读取
- 全局处理javascript对象存在性检查
- 当只有一个对象存在时,Jquery返回两个对象