Como se indica en el título, tengo esta variable 'i' en las etiquetas scriplet de la parte ejs:
<span class="UTXOindex"><% var i = 0 %></span> <div class="test"></div>y tengo lo siguiente en la parte del script JS en el mismo archivo con la esperanza de poder incrementar la variable anterior:
<script> document.getElementById("nextButton").addEventListener("click", e => { e.preventDefault() document.querySelector(".test").insertAdjacentHTML( "afterbegin", ` <p>The number was <%= i %></p> <% i++ %> <p>The number is now <%= i %></p> ` ) }) </script>Estoy tratando de actualizar la variable 'i' en la parte ejs de la parte del script JS, pero parece que no se actualiza después de activar el detector de eventos varias veces. Activar .addEventListener varias veces se vería así:
The number was 0 The number is now 1 The number was 0 The number is now 1 The number was 0 The number is now 1Esperaba el siguiente resultado:
The number was 0 The number is now 1 The number was 1 The number is now 2 The number was 2 The number is now 3y así sucesivamente...
¿Alguna sugerencia? ¿Y cómo actualizar permanentemente una variable en las etiquetas scriplet de EJS?
Puede usar el atributo de datos HTML .
document.getElementById("nextButton").addEventListener("click", e => { e.preventDefault() var i = Number(document.getElementById("increment").getAttribute("data-increment")) document.querySelector(".test").insertAdjacentHTML( "afterbegin", ` <p>The number was ${i}</p> <p>The number is now ${i+1}</p> ` ) document.getElementById("increment").setAttribute("data-increment", i+1); }) <button id="nextButton">Click</button> <span class="UTXOindex" data-increment="0" id="increment"></span> <div class="test"></div>También puede asignar un valor como este:
<span class="UTXOindex" data-increment="<%= anyValue %>" id="increment"></span>