我们如何在javascript中增加scriptlet中声明的变量

时间:2012-12-16 14:54:09

标签: javascript jsp scriptlet

我想显示列表的元素,但是我对列表计数器的增量有问题。它只有一次了。

这是我在javascript中的功能代码

var element= document.getElementById("question");
        timeTotal =timeTotal -1;
        var nextQuestNumber = <%=k%>;
        var nbQuestion = <%=iter%>;
      if (timeTotal <= 0 && nextQuestNumber>0 && nextQuestNumber<nbQuestion)
      {
          timeTotal=<%=a%>;
         element.innerHTML = '<c:out value="<%=listQuestions.get(k).getQuestion()%>"/>';
         <%=k++%>;
      }

      setTimeout("listIter()", 1000);

k是初始化为零的计数器,iter是列表大小,timeTotal是描述总时间(一分钟)的变量。 所以我每分钟都想获得列表的下一个元素并显示它。

所以加载这个函数我做了这个:

<body onload="listIter()">

为了重复这个功能,我每次都在函数内执行此操作:

setTimeout("listIter()", 1000);

但不幸的是,这对我不起作用。 你能帮帮我吗,告诉我

3 个答案:

答案 0 :(得分:0)

你不能直接这样做。

首先将整个列表传递给客户端代码然后使用k客户端并从客户端数组中读取正确的项目,或者使用AJAX从服务器读取正确的项目。

此外,您没有任何停止条件,因此您的功能将无休止地运行,这不是一个好习惯。完成后,请勿再次调用该功能。

答案 1 :(得分:0)

jsp表达式如<% .. %><c:out .. />在服务器端进行评估,而javascript代码则在客户端运行。您应该检查浏览器中的javascript代码,以查看呈现服务器端的内容。

答案 2 :(得分:0)

该计划中存在以下问题:

  

setTimeout(“listIter()”,1000);

  

setTimeout(listIter,1000);

  

&LT;%= K ++%取代;

  

nextQuestNumber ++;

  

timeTotal = LT;%=百分比取代;

     

在程序中的其他变量中接收它,因为它在每次运行时都会被重置。