Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

3.6K
Vistas
Cómo usar la función onclick para cambiar la variable ejs

Estoy creando una aplicación web usando Node, Express y ejs. En la misma página, genero un conjunto de botones (primera tabla a continuación) y un conjunto de div ocultos correspondientes (segunda tabla a continuación). Cuando se hace clic en un botón, quiero mostrar el div correspondiente.

 <% for(var i = 0; i < stream.length; i++){ %> <tr> <th scope="row"><%= stream[i].streamid %></th> <td><%= stream[i].streamname %></td> <td><%= stream[i].streamername %></td> <td> <button class="btn btn-outline-success" data-toggle="modal" data-target="#streamDetailsModal" id="detailsstream" onclick="<% ctr = i %>" > Details </button> </td> <td> <a class="btn btn-outline-danger" href="/stream/delete/<%= stream[i].streamid %>" > ⊖ Remove </a> </td> </tr> <% } %>
 <% for(var i = 0; i < stream.length; i++){ %> <tr> <th scope="row"><%= stream[i].streamid %></th> <td><%= stream[i].streamname %></td> <td><%= stream[i].streamername %></td> <td> <button class="btn btn-outline-success" data-toggle="modal" data-target="#streamDetailsModal" id="detailsstream" data-ctr="<%= i %>" > Details </button> </td> <td> <a class="btn btn-outline-danger" href="/stream/delete/<%= stream[i].streamid %>" > ⊖ Remove </a> </td> </tr> <% } %>

Necesito que el contador en el primer ciclo cambie mientras el usuario hace clic en el botón de detalles del segundo ciclo.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Si desea seguir la lógica anterior... la forma posible será hacer una llamada al servidor al hacer clic en el botón, calcular el valor en el servidor y volver a mostrar la página en el front-end. El navegador Javascript no puede cambiar ni manipular la lógica o la variable ejs. Eso se hace en el servidor del nodo.

over 4 years ago · Santiago Trujillo Denunciar

0

La forma normal de implementar dicha funcionalidad es hacer algo como esto:

en sus primeros botones de generación de bucles, agregue a cada botón un controlador que muestre el div con alguna identificación única (como streamDetailsModal12 para el botón 12); si usa bootstrap o algo similar, ni siquiera tiene que implementar el handler

 <button class="btn btn-outline-success" data-toggle="modal" data-target="#streamDetailsModal<% i %>" id="detailsstream" onclick="handler(event)" >

y a cada div que le gustaría mostrar al hacer clic en el botón, agregue las identificaciones correspondientes:

 <div id="streamDetailsModal<% i %>" > some content </div>

Si implementa el handler usted mismo, debe obtener la identificación de event.target (que es su botón que contiene el atributo data-target con la identificación que desea) y luego encontrar el elemento y alternar su propiedad de display o cualquier otra cosa que le gustaría controlar la visibilidad.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda