[英]How can we increment variables declared in scriptlet inside javascript
我想顯示列表的一個元素,但是列表計數器的遞增有問題。 它只會增加一次。
這是我在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
是使總時間(一分鍾) timeTotal
的變量。 所以我想每分鍾獲取列表的下一個元素並顯示它。
因此,要加載此功能,我這樣做:
<body onload="listIter()">
為了每秒重復一次此功能,我在功能內部做了以下操作:
setTimeout("listIter()", 1000);
但不幸的是,這對我不起作用。 你能幫我嗎,告訴我
您不能直接這樣做。
或者先將整個列表傳遞給客戶端代碼,然后讓k
客戶端從客戶端數組中讀取適當的項目,或者使用AJAX從服務器中讀取適當的項目。
此外,您沒有任何停止條件,因此您的功能將不斷運行,這不是一個好習慣。 完成后,請勿再次調用該函數。
諸如<% .. %>
或<c:out .. />
類的jsp表達式是在服務器端評估的,而您的JavaScript代碼是在客戶端運行的。 您應該在瀏覽器中檢查javascript代碼,以查看呈現在服務器端的內容。
該程序存在以下問題:
setTimeout(“ listIter()”,1000);
至
setTimeout(listIter,1000);
和
<%= k ++%>;
至
nextQuestNumber ++;
和
timeTotal = <%= a%>;
每次運行都會對其進行重置,因此可以在程序中的其他變量中接收它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.