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

sch*_*erj 0 javascript

我进入undefined我的console.log(),at console.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');
        })
Run Code Online (Sandbox Code Playgroud)

Nie*_*sol 5

当你写for( item in rdetail)时,按键rdetail分配给item一个接一个.由于键是字符串,因此为其分配属性不会*.

你有意义rdetail[item].ResponseId吗?

*它实际上将原始字符串包装在一个String()对象中,将属性赋给它,然后丢弃它