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

151
Visualizações
Cómo apuntar a ".switch-field input:checked" para realizar cambios en las propiedades de CSS con JavaScript

¿Cómo puede Javascript cambiar las propiedades CSS de input:checked

CSS

 .switch-field input:checked + label { background-color: #018786; color:white; box-shadow: none; }

Digamos que quiero cambiar su color de fondo-

JS

 document.getElementsByClassName("switch-field input:checked")[0].style.background= #4400ff;

¿Cómo puedo apuntar a esa "clase" específica con "entrada verificada"?

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

0

Puede usar querySelector para un solo elemento o querySelectorAll para varios elementos. Puede usar la consulta CSS en eso.

 document.querySelector("switch-field input:checked").style.background = "#4400ff";
about 4 years ago · Juan Pablo Isaza Relatório

0

Explicación

Básicamente los pasos que debes seguir son

  1. Borrar todas las propiedades de estilo de fondo de la etiqueta
  2. Seleccione toda la input:checked + label (ese es el elemento que tiene la propiedad de color de fondo)
  3. Recorra todas las etiquetas obtenidas
  4. Cambia el color de fondo a lo que quieras

Tengo que estar al tanto de

  1. Cambiar la propiedad de fondo a través de javascript no la cambiará automáticamente cuando la entrada no esté marcada
  2. Deberá ejecutar una función de borrado/actualización en el evento onChange de la input para asegurarse de que establece los fondos correctamente al verificar y desmarcar la entrada

Sugerencias

  1. Usa las clases input:checked + label y input + label de CSS para agregar tus fondos
  2. Siempre trate de evitar la manipulación de estilos de JavaScript, va en contra de la convention y, por lo general, se considera una mala práctica si se puede evitar.

Solución

 function clickHandle() { // Clear all the labels background style property to ensure it resets to the css class background property clearLabelBackground(); // Get all the labels (not input) based on the css input:checked flag // We are getting the label because that if the element which has the background color property you want to change var selectedLabels = document.querySelectorAll("input:checked + label"); // Loop through each of the fetched labels selectedLabels.forEach((label)=>{ // Change the background color style label.style.background="#4400ff"; }); } function clearLabelBackground() { // Get all the labels (not input) regardless of the selection // We are getting the label because that if the element which has the background color property you want to change var selectedLabels = document.querySelectorAll("input + label"); // Loop through each of the fetched labels selectedLabels.forEach((label)=>{ // Remove the background color style label.style.background=""; }); }
 .switch-field input:checked + label { background-color: #018786; color:white; box-shadow: none; }
 <div class="switch-field"> <input type="checkbox"/> <label>Item 1</label> </div> <div class="switch-field"> <input type="checkbox"/> <label>Item 2</label> </div> <div class="switch-field"> <input type="checkbox"/> <label>Item 3</label> </div> <div class="switch-field"> <input type="checkbox"/> <label>Item 4</label> </div> <button onclick="clickHandle()">Change BG</button>

He comentado el código javascript, si necesita más aclaraciones, no dude en comentar esta respuesta

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