我有一段代码可以检索程序中的最后一个问题,并且可以用最新的值来更新HTML5进度条的值。

现在由于某种原因我找不到,当我console.log data参数时,它已满。但是当我尝试使用它时,什么也没有显示。

我无法意识到的代码中有什么错误吗?

javascript - jQuery不从具有数据的现有数组中选择数据-LMLPHP

//Run timer
$(document).ready(function () {
    if($('input[name=active_question]').val()!="")
    {
        start_timer();
    }
});
function start_timer()
{
   var x=0;
    function doStuff() {
       x++;
       $('.timer').html(x+' sec');
       console.log('Timer:'+x);
       $.ajax({
        method: "GET",
        url: "/services/get_active_question/"
        })
        .done(function( data ) {
            //It is time to regenerate the question values.
            console.log('Data:'+data);
            if(data['id']!=0)
            {
                regenerate_question(data);
            }
        });
    }
    setInterval(doStuff, 1000);
}
function regenerate_question(data)
{
    if(data['id']!=0)
    {
        console.log('A: '+data['a']);
        $('.progress-a').prop('value',data['a']);
        $('.progress-b').prop('value',data['b']);
        $('.progress-x').prop('value',data['x']);
        $('.progress-y').prop('value',data['y']);
    }
}

最佳答案

您从ajax返回的是json字符串。但是,ajax并未将其标识为JSON。因此,您需要将dataType指定为JSON

$.ajax({
    method: "GET",
    url: "/services/get_active_question/",
    dataType: 'json'
}).done(function( data ) {
    //It is time to regenerate the question values.
    console.log('Data:'+data);
    if(data['id']!=0)
        regenerate_question(data);
});


另一种方法是使用

data = JSON.parse(data)


在完成功能。

关于javascript - jQuery不从具有数据的现有数组中选择数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35343147/

10-11 23:34