0

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

这是我在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);

但不幸的是,这对我不起作用。你能帮我解决这个问题并告诉我吗

4

3 回答 3

0

你不能直接这样做。

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

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

于 2012-12-16T15:01:24.257 回答
0

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

于 2012-12-16T15:03:09.190 回答
0

程序中的以下问题:

setTimeout("listIter()", 1000);

setTimeout(listIter, 1000);

<%=k++%>;

下一个任务编号++;

时间总计=<%=a%>;

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

于 2012-12-16T15:06:16.337 回答