簡體   English   中英

我們如何增加javascript內scriptlet中聲明的變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM