我的JS中出现了一个未定义的错误,但不确定原因

时间:2013-12-19 19:45:36

标签: javascript

我在我的console.log()中获取undefinedconsole.log(item.ResponseId);这反过来导致我的$ ajax.done()函数失败,因为该值必须是返回值最初的电话。此外,console.log(msg.ResponseId);正在按预期输出整数。

var rdetail = new Array();
        $('.choiceinput').each(function (i, obj) {
            rdetail.push({
                "ResponseId": 0,
                "ResponseDetailVal": $(this).val(),
                "QuestioChoicesId": $(this).attr('id')
            });
        })


        $.ajax({
            type: "POST",
            url: "/Forecaster/userResponse/",
            data: data
        }).done(function (msg) {
            console.log(msg.ResponseId);
            for (var item in rdetail) {
                item.ResponseId = msg.ResponseId;
                console.log(item.ResponseId);
            }
            console.log("Last: ");
            console.log(rdetail);
            $.post('/Forecaster/userResponseDetails/',
                     JSON.stringify(rdetail),
                null, 'application/json');
        })

1 个答案:

答案 0 :(得分:5)

当您编写for( item in rdetail)时,rdetail将逐一分配到item。由于键是字符串,因此为其分配属性不会*。

你的意思是rdetail[item].ResponseId吗?

*它实际上将原始字符串包装在String()对象中,为其分配属性,然后丢弃它