哈希键访问错误

Hash key access error

我在访问我的对象的键 evenimente 时遇到了这个奇怪的错误。有什么想法吗?

它显然可用,但我无法通过 .(dot)

访问它

编辑:抱歉,这是代码

var isPresent = function(entry) {
            var evenimente = entry.evenimente;
            var elem = $("#" + entry.nume + "-" + entry.prenume);

            for(var i = 0; i < evenimente.length; i++) {
                var eveniment = evenimente[i];
                if(eveniment.eveniment_id == eventId && eveniment.user_id == entry.id) {
                    elem.prop('checked', true);
                }
            }

            elem.prop('checked', false);
        }

我通过 ajax 从服务器

得到 entry

看起来你的 entry 是一个数组(请参阅控制台中的 [])。

因此,您应该能够通过这种方式访问​​ evenimente 字段:

var ev = entry[0].evenimente

更新后的代码如下所示:

var isPresent = function (entry) {
    var evenimente = entry[0].evenimente;
    var elem = $("#" + entry[0].nume + "-" + entry[0].prenume);

    for (var i = 0; i < evenimente.length; i++) {
        var eveniment = evenimente[i];
        if (eveniment.eveniment_id == eventId && eveniment.user_id == entry[0].id) {
            elem.prop('checked', true);
        }
    }

    elem.prop('checked', false);
}

此外,为了方便起见,您可以像下面这样覆盖 entry 值:

var isPresent = function (entry) {
    entry = entry[0];
    if (!entry) { 
       throw new Error("No available entry.");
    }
    var evenimente = entry.evenimente;
    var elem = $("#" + entry.nume + "-" + entry.prenume);

    for (var i = 0; i < evenimente.length; i++) {
        var eveniment = evenimente[i];
        if (eveniment.eveniment_id == eventId && eveniment.user_id == entry.id) {
            elem.prop('checked', true);
        }
    }

    elem.prop('checked', false);
}