javascript的问题,简单的递归函数

时间:2011-02-13 16:13:45

标签: javascript recursive-query

我对javascript及其语法并不是很熟悉,但我已经解决了这个功能,并且当我递归调用它时我一直都会遇到错误。

function loading(id, formid, point)
{
    document.getElementById(id).innerHTML='<span class="red">Please wait until this text disappears! Uploading'+point+'</span>';
    document.getElementById(formid).submit();
        if(point='...')
            {point='';}
        else
            {point+='.';}
        setTimeout('loading('+id+', '+formid+', '+point+')',10);
}

我得到的错误是:

Uncaught TypeError: Cannot call method 'submit' of null

所以似乎变量formid没有传递给recursiv调用。谁知道为什么?

谢谢!

Maenny

1 个答案:

答案 0 :(得分:4)

当您再次将formid复制到函数中时,您没有用引号括起它,因此您传递的是未定义的变量而不是字符串。

无论如何,eval是邪恶的。不要将字符串传递给setTimeout,传递函数。

setTimeout(function () {
    loading(id, formid, point);
},10);