Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

109
Visualizações
Necesito cambiar entre 3 divs pero no puedo resolver el js

Estoy usando el interruptor visible para cambiar entre 3 elementos visibles al presionar un botón, pero solo puedo obtener 2. Gracias por la ayuda :)

 function switchVisible() { if (document.getElementById('text1')) { if (document.getElementById('text1').style.display == 'none') { document.getElementById('text1').style.display = 'block'; document.getElementById('text2').style.display = 'none'; document.getElementById('text3').style.display = 'block'; } else { document.getElementById('text1').style.display = 'none'; document.getElementById('text2').style.display = 'block'; document.getElementById('text3').style.display = 'none'; } } }
 #text1, #text2, #text3 { display: none; }
 <div id="text1">text 1</div> <div id="text2">text 2</div> <div id="text3">text 3</div> <input id="Button1" type="button" value="Click" onclick="switchVisible();"/>

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

para hacer esto una propuesta puede ser:

  • tener una matriz de todos los id div para cambiar
  • tener un índice móvil que diga qué div debe mostrarse

 var divIds = [ 'text1', 'text2', 'text3' ]; var visibleIndex = 0; function switchVisible() { divIds.forEach(id => { document.getElementById(id).style.display = 'none'; }); document.getElementById(divIds[visibleIndex]).style.display = 'block'; visibleIndex++; if (visibleIndex === divIds.length) { visibleIndex = 0; } } switchVisible();
 #text1, #text2, #text3 { display: none; }
 <div id="text1">text 1</div> <div id="text2">text 2</div> <div id="text3">text 3</div> <input id="Button1" type="button" value="Click" onclick="switchVisible();"/>

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar el siguiente enfoque para lograr esto. Use una declaración de cambio y un conteo variable para realizar un seguimiento de 3 divs.

Fragmento de código de trabajo completo:

 let count = 1; function switchVisible() { switch (count) { case 1: document.getElementById('text1').style.display = 'block'; document.getElementById('text2').style.display = 'none'; document.getElementById('text3').style.display = 'none'; count++; break; case 2: document.getElementById('text1').style.display = 'none'; document.getElementById('text2').style.display = 'block'; document.getElementById('text3').style.display = 'none'; count++ break; case 3: document.getElementById('text1').style.display = 'none'; document.getElementById('text2').style.display = 'none'; document.getElementById('text3').style.display = 'block'; count = 1 break; default: count = 1 } }
 #text1, #text2, #text3 { display: none; }
 <div id="text1">text 1</div> <div id="text2">text 2</div> <div id="text3">text 3</div> <input id="Button1" type="button" value="Click" onclick="switchVisible();" />

Espero que así es como querías que funcionara.

about 4 years ago · Juan Pablo Isaza Relatório

0

Una clase sería mejor para marcar todos los elementos de una colección.

Nota al margen: en mi experiencia, las clases casi siempre son mejores, ya que se pueden aplicar a uno o varios elementos. Las identificaciones son imo. más para casos especiales. Se refieren a un solo elemento que debe ser único en toda la página.

Ahora volviendo al tema:

Acerca de la alternancia, puede realizar un seguimiento del elemento visible en una variable:

 let visible = 0; function switchVisible() { const elements = Array.from(document.querySelectorAll(".tab")); elements.forEach((element, index) => { element.style.display = index === visible ? "block" : "none"; }); // increment visible visible = (visible + 1) % elements.length; }
 .tab { display: none; }
 <div class="tab">text 1</div> <div class="tab">text 2</div> <div class="tab">text 3</div> <input id="Button1" type="button" value="Click" onclick="switchVisible();" />

o averigua cuál es visible en la propia función.

 function switchVisible() { const elements = Array.from(document.querySelectorAll(".tab")); // checking which one is the first that has some dimension let visible = elements.findIndex(element => element.offsetWidth || element.offsetHeight); // increment visible visible = (visible + 1) % elements.length; // make this "next one" visible elements.forEach((element, index) => { element.style.display = index === visible ? "block" : "none"; }); }
 .tab { display: none; }
 <div class="tab">text 1</div> <div class="tab">text 2</div> <div class="tab">text 3</div> <input id="Button1" type="button" value="Click" onclick="switchVisible()" />

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda