JQuery val返回undefined

时间:2016-05-04 04:10:00

标签: javascript jquery asynchronous undefined

所以我正在调用以下函数:

function updateOutput(a){

    var n = $('#selector').val();

    $('#hueslide').val(a[n].hue);
    $('#huetext').val(a[n].hue);
}

我收到一个错误:“无法读取未定义的属性'hue'。”

但是,当我使用console.log(n)时,它返回一个值。当我在[n]中手动插入相同的值时,我得到了预期的结果。我猜这是一个异步问题,但相同的代码在早期版本中工作,我不知道如何解决它。

具体来说,当尝试使用console.log调试updateOutput时,我得到以下内容:

console.log(n); //returns 0
console.log(a); //returns an array of objects
console.log(a[0]); //returns first object in array
console.log(a(n)); // returns undefined

3 个答案:

答案 0 :(得分:3)

该错误并不是说n未定义,甚至不是a,而是说在分配给hue的任何内容上都没有属性a[n]。无论您传递给updateOutput的是什么,都没有与n匹配的关键字hue

答案 1 :(得分:1)

试试这样:

function updateOutput(a){

   $(document).ready(function(e) {

        var n = $('#selector').val();

       $('#hueslide').val(a[n].hue);
       $('#huetext').val(a[n].hue);


    });  
}

您必须等到元素完全加载。这就是你必须使用现成方法的原因。

答案 2 :(得分:0)

好的,我明白了。结果0n string的值{}传递了n = parseInt(n);。因此添加{{1}}解决了这个问题。