jQuery grep无法正常工作或者我不理解它的用法

时间:2015-10-01 09:48:28

标签: jquery arrays grep

我有一组用户,我正在尝试点击一次隔离一个用户。根据我的理解,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;
            }
        }

一切正常。有什么想法吗?

0 个答案:

没有答案