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

150
Visualizações
Cómo seleccionar botones de radio con un clic para cambiar el color al hacer clic

Estoy tratando de hacer un juego de preguntas de matemáticas para mi salón de clases. He creado una página para seleccionar el tipo de juego que quiere el usuario. Creé una función para seleccionar el elemento cuando se hace clic para cambiar los colores, pero no cambia los colores. He intentado codificar el estilo y funciona correctamente, pero solo quiero el estilo cuando se selecciona el contenedor de radio.

 const startForm = document.getElementById('start-form'); const radioContainers = document.querySelectorAll('.radio-container'); const radioInputs = document.querySelectorAll('input'); const bestScores = document.querySelectorAll('.best-score-value'); startForm.addEventListener('click', () => { radioContainers.forEach((radioEl) => { radioEl.classList.remove('selected-label'); if (radioEl.childeren[1].checked) { radioEl.classList.add('selected-label'); } }); });
 RADIO CONTAINER TO BE SELECTED <div class="radio-container"> <label for="value-99">99 Questions</label> <input type="radio" name="Questions" value="99" id="value-99"> <span class="best-score"> <span>Best Score</span> <span class="best-score-value">0.0</span> </span> </div>

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

0

creo que te refieres a esto

La delegación de startForm está bien, luego podemos recorrer los divs para ver si se verificó la radio en el div

 const startForm = document.getElementById('start-form'); const radioContainers = document.querySelectorAll('.radio-container'); startForm.addEventListener('click', (e) => { const tgt = e.target; if (tgt.name === "Questions") { const parent = tgt.closest('.radio-container') radioContainers.forEach(container => container.classList.toggle('selected-label', container === parent && tgt.checked)) } });
 .selected-label { color: green }
 <form id="start-form"> <div class="radio-container"> <label for="value-99">99 Questions</label> <input type="radio" name="Questions" value="99" id="value-99"> <span class="best-score">Best Score</span> <span class="best-score-value">0.0</span> </div> <div class="radio-container"> <label for="value-99">99 Questions</label> <input type="radio" name="Questions" value="99" id="value-99"> <span class="best-score">Best Score</span> <span class="best-score-value">0.0</span> </div> </form>

about 4 years ago · Juan Pablo Isaza Relatório

0

La pregunta es algo un duplicado. cambiar la radio de color de la etiqueta cuando se verificó Obtuve la respuesta desde aquí, y se puede hacer usando CSS sin necesidad de usar JavaScript.
(Observe que algunos botones tienen colores diferentes cuando se hace clic en ellos) Aquí hay un fragmento

 input[type="radio"]:checked ~ span { color:red; } input[type="radio"]:checked.correct ~ span { color:green; }
 <form id="start-form"> <div class="radio-container"> <label for="value-99">99 Questions</label> <input type="radio" name="Questions" value="99" id="value-99"> <span class="best-score">Best Score</span> <span class="best-score-value">0.0</span> </div> <div class="radio-container"> <label for="value-99">99 Questions</label> <input type="radio" name="Questions" value="99" id="value-99" class = "correct"> <span class="best-score">Best Score</span> <span class="best-score-value">0.0</span> </div> <div class="radio-container"> <label for="value-99">99 Questions</label> <input type="radio" name="Questions" value="99" id="value-99"> <span class="best-score">Best Score</span> <span class="best-score-value">0.0</span> </div> <div class="radio-container"> <label for="value-99">99 Questions</label> <input type="radio" name="Questions" value="99" id="value-99" class = "correct"> <span class="best-score">Best Score</span> <span class="best-score-value">0.0</span> </div> </form>

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