Javascript JSON.stringify中未捕获的InvalidStateError

Javascript JSON.stringify中未捕获的InvalidStateError,javascript,jquery,json,stringify,Javascript,Jquery,Json,Stringify,我读过另一篇文章,但不好: 每当我尝试JSON.stringify对象数组时,我都会收到一个错误消息: Uncaught InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable. 这是我的JS: var responseItems = []; var keynoteContainer = $('div.keynot

我读过另一篇文章,但不好:

每当我尝试JSON.stringify对象数组时,我都会收到一个错误消息:

Uncaught InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable. 
这是我的JS:

            var responseItems = [];

            var keynoteContainer = $('div.keynote-questions');
            var eventQuestionContainer = $('div.event-questions');
            var sessionContainer = $('div.session-questions');
            var eventId = $('#Evaluation-Event-Id').val();

            keynoteContainer.children().each(function (index, el) {
                var element = $(el);

                var id = "-1";
                var parentId = element.find('input[type=hidden]').val();
                var parentType = "Keynote";
                var responseValue = element.find('.response-item-slider').slider("option", "value");
                var responseText = "";

                var response = { "Id": id, "EventId": eventId, "ParentId": parentId, "ParentType": parentType, "ResponseValue": responseValue, "ResponseText": responseText };
                responseItems.push(response);
            });                    

            eventQuestionContainer.children().each(function (index, el) {
                var element = $(el);

                var id = "-1";
                var parentId = element.find('input[type=hidden]').val();
                var parentType = "EventQuestion";
                var responseValue = element.find('.response-item-slider').slider("option", "value");
                var responseText = element.find('textarea').val();

                var response = { "Id": id, "EventId": eventId, "ParentId": parentId, "ParentType": parentType, "ResponseValue": responseValue, "ResponseText": responseText };
                responseItems.push(response);
            });

            sessionContainer.children().each(function (index, el) {
                var element = $(el);

                var id = "-1";
                var parentId = element.find('input[type=hidden]').val();
                var parentType = "Session";
                var responseValue = element.find('.response-item-slider').slider("option", "value");
                var responseText = "";

                var response = { "Id": id, "EventId": eventId, "ParentId": parentId, "ParentType": parentType, "ResponseValue": responseValue, "ResponseText": responseText };
                responseItems.push(response);
            });

            responseItems = JSON.stringify(responseItems);
我尝试记录所有内容,但它只在最后一行字符串化时中断


我怎样才能解决这个问题?任何建议或信息都将不胜感激。

我也有同样的问题。在我的例子中,将故障变量转换为array()已修复。我的意思是:
responseItems=responseItems.toArray()
我不知道为什么这个变量看起来像一个数组,但它不是 之后您可以拨打:
JSON.stringfy(responseItems)
没有问题。

对不起,我的英语不是以英语为母语的

我也犯了同样的错误。在我的例子中,我在设置一个模型属性时忘记了.val()。在我尝试JSON.stringify模型之前没有出现错误

        this.model.set(
        {
            customername: this.$("#customername").val(),
            jobtitle: this.$("#jobtitle"),  //This was the line causing the error
            testimonialtext: this.$("#testimonialtext").val()
        });

哪个浏览器给了你这个错误?听起来像是跨帧引用被垃圾回收了。你在用这样的东西吗?@Bergi,嗯?我不认为那是我的帖子。@Bergi嗯。。。你可能在那里发现了什么。我有一个页面,它将部分视图(评估项)加载到一个DIV中。然后我遍历该DIV中的每个项以构建responseItems对象数组。它工作正常(记录所有内容),直到stringify出现错误为止。@AnimaSola是
中的“部分视图”?由于每个
都是一个独特的JavaScript全局环境,当对象在帧之间传递时,可能会发生奇怪的事情。我已经将
$tr.find($('.asm note').val())
设置为对象中的一个属性,而实际上我的意思是
$tr.find('.asm note').val()