js num++为什么无法加载数字

 <div id="topicindexmsg"><a href="javascript:maketopicindex();" id="maketopicindex" style="color:green;">开始建立索录入</a></div>
var tpages =400;
var num=0;

    function maketopicindex() {
          $.get("/makeindex/"+num, function(msg) {
                if(msg=='ok'){
                  if(num<=tpages){
                        maketopicindex();
                  }else{
                    num=0;
                     $("#topicindexmsg").html("<font color='green'>已完成!</font>");
                    return false;
                  }
                    $("#maketopicindex").parent().html("<font color='orange'>正在重新建立文章索引,请稍后("+num+"/"+tpages+")...</font>");
                    num++;
                }
            });

    }

为什么一直停在显示 【正在重新建立文章索引,请稍后(0/400)】

正常不应该是会自动循环增加数字吗?问题出在哪里了

请稍后(5/400)
请稍后(10/400)
请稍后(15/400)

你代码的主要问题是执行$("#maketopicindex").parent().html("。。。。。");之后,#maketopicindex元素就被覆盖掉了,下次再获取$("#maketopicindex")就获取不到了。
num会增加,只是页面上不更新显示了。
应该改成$("#topicindexmsg").html("<font color='orange'>正在重新建立文章索引,请稍后(" + num + "/" + tpages + ")...</font>");

        if (msg == 'ok') {
            if (num <= tpages) {
                $("#topicindexmsg").html("<font color='orange'>正在重新建立文章索引,请稍后(" + num + "/" + tpages + ")...</font>");
                num++;
                maketopicindex();
            } else {
                num = 0;
                $("#topicindexmsg").html("<font color='green'>已完成!</font>");
                return false;
            }
        }

因为在这里:

if(num<=tpages){
            maketopicindex();
}

一直在回调,每次请求带的num都是0, 根本就执行不下去,每次请求完成,都走到这一步,然后就递归了,一直死循环
把下面的输出到页面的代码放到上面试一下:

if(num<=tpages){
    $("#maketopicindex").parent().html("<font color='orange'>正在重新建立文章索引,请稍后("+num+"/"+tpages+")...</font>");
      num++;
            maketopicindex();
}

get是异步执行的,也就是执行到正在重新建立文章索引,请稍后的时候,get可能还没有执行。
整个逻辑不对,需要重新梳理。