我有一组用户,我正在尝试点击一次隔离一个用户。根据我的理解,grep应该检查一个数组并创建另一个匹配所选值的数组。这些值来自手风琴中的一系列复选框。当我尝试这个时:
$(document).on('click', '.userWcb', function() {
var chk = $(this);
var ischecked = $(chk).is(':checked');
var id = chk[0].id.substring(8);
var len = UserArray.length;
var pat = $.grep(UserArray, function (e) {
var tst = e;
return e.UserId = parseInt(id);
});
if (ischecked) {
if (pat != null) {
pat[0].PrintW = true;
}
}
else {
if (pat != null) {
pat[0].PrintW = false;
}
}
});
它没有用。例如,当我在数组中有多个项目时,无论实际ID是什么,它都会全部选择它们。但如果我这样做:
$(document).on('click', '.patientWristcb', function() {
var chk = $(this);
var ischecked = $(chk).is(':checked');
var id = chk[0].id.substring(8);
var len = UserArray.length;
for (i = 0; i < len; i++) {
var patid = UserArray[i].UserId;
if (patid === parseInt(id)) {
if (ischecked) {
UserArray[i].PrintW = true;
}
else {
UserArray[i].PrintW = false;
}
break;
}
}
一切正常。有什么想法吗?