我想显示列表的元素,但是我对列表计数器的增量有问题。它只有一次了。
这是我在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);
但不幸的是,这对我不起作用。 你能帮帮我吗,告诉我
答案 0 :(得分:0)
你不能直接这样做。
首先将整个列表传递给客户端代码然后使用k
客户端并从客户端数组中读取正确的项目,或者使用AJAX从服务器读取正确的项目。
此外,您没有任何停止条件,因此您的功能将无休止地运行,这不是一个好习惯。完成后,请勿再次调用该功能。
答案 1 :(得分:0)
jsp表达式如<% .. %>
或<c:out .. />
在服务器端进行评估,而javascript代码则在客户端运行。您应该检查浏览器中的javascript代码,以查看呈现服务器端的内容。
答案 2 :(得分:0)
该计划中存在以下问题:
setTimeout(“listIter()”,1000);
到
setTimeout(listIter,1000);
和
&LT;%= K ++%取代;
到
nextQuestNumber ++;
和
timeTotal = LT;%=百分比取代;
在程序中的其他变量中接收它,因为它在每次运行时都会被重置。