【发布时间】:2018-08-08 09:30:41
【问题描述】:
我有一个这样的用户 ID 数组:
var taskAssignTo = jQuery(this).attr('data-assigned');
var userArray = new Array();
userArray = taskAssignTo.split(",");
这会得到一个存储在“数据分配”属性中的 id 字符串,用逗号分隔。
我尝试了以下方法来检查每个复选框,如果它的值在数组中,如下所示:
jQuery( ".assignTo input" ).each(function( index ) {
var val = jQuery( this ).val();
if(jQuery.inArray(val, userArray)){
jQuery( this ).prop('checked', true);
}
});
不过,这只检查数组中的最后一项。
如果我是这样console.log(val):
jQuery( ".assignTo input" ).each(function( index ) {
var val = jQuery( this ).val();
console.log(val);
if(jQuery.inArray(val, userArray)){
jQuery( this ).prop('checked', true);
}
});
我可以看到数组的所有结果都是从“数据分配”属性返回的。如果我将 console.log(val) 移到这里:
jQuery( ".assignTo input" ).each(function( index ) {
var val = jQuery( this ).val();
if(jQuery.inArray(val, userArray)){
console.log(val);
jQuery( this ).prop('checked', true);
}
});
同样,这只返回数组中的最后一项。
我所做的有什么明显错误吗?
FIDDLE HERE: https://jsfiddle.net/Lvwhvadk/4/
【问题讨论】:
-
你能分享一个工作代码 sn-p 来演示这个问题吗?
-
是的,我会编辑我的问题以包含一个小提琴。
-
你不能在这里添加代码sn-p。查看编辑器中的
{}符号。
标签: jquery arrays each checked