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

143
Visualizações
Cambiar el color de fondo si la clase contiene un valor

Me pregunto si puedo cambiar el color de fondo de una clase cuando tiene un valor específico.

Ejemplo: si el elemento contiene '1' cambie bg-color a rojo, si contiene '2' cambie bg-color a verde, etc.

HTML:

 <div class="skill-points"> 1 </div> <!-- BG color = red --> <div class="skill-points"> 2 </div> <!-- BG color = green --> <div class="skill-points"> 3 </div> <!-- BG color = yellow -->

CSS:

 .skill-points { width: 50px; padding: 4px; margin: 4px; border: 1px solid #000; text-align: center; }

¿Cómo debo escribir mi código JavaScript para lograr este efecto?

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

0

Puede obtener todos sus elementos de class relevantes en una colección (usando getElementsByClassName ) y luego convertirlos en una array (usando el operador de distribución ). Luego puede asignar colores de fondo usando la propiedad style.backgroundColor .

He usado un objeto de mapeo, que puede ser útil; de if contrario, también puede hacer comprobaciones individuales. innerText es la propiedad que puede usar para comparar el texto interno de los elementos HTML.

 let mapping = { '1' : 'red', '2' : 'green' , '3': 'blue' }; [...document.getElementsByClassName('skill-points')].forEach( x => { x.style.backgroundColor = mapping[x.innerText]; });
 .skill-points { width: 50px; padding: 4px; margin: 4px; border: 1px solid #000; text-align: center; }
 <div class="skill-points"> 1 </div> <!-- BG color = red --> <div class="skill-points"> 2 </div> <!-- BG color = green --> <div class="skill-points"> 3 </div>

about 4 years ago · Juan Pablo Isaza Relatório

0

Simplemente recorra sus elementos, verifique el innerText y configure el estilo del elemento.

 document.querySelectorAll('.skill-points').forEach(div => { if (div.innerText.contains('1')) div.style.backgroundColor = 'red'; ... });
about 4 years ago · Juan Pablo Isaza Relatório

0

1) Puede obtener texto usando textContent y combinarlo y establecer el color como

 const allSkillPoints = document.querySelectorAll(".skill-points"); allSkillPoints.forEach(el => { const text = +el.textContent.trim(); if (text === 1) el.style.backgroundColor = "red"; else if (text === 2) el.style.backgroundColor = "green"; else if (text === 3) el.style.backgroundColor = "yellow"; })
 .skill-points { width: 50px; padding: 4px; margin: 4px; border: 1px solid #000; text-align: center; }
 <div class="skill-points"> 1 </div> <!-- BG color = red --> <div class="skill-points"> 2 </div> <!-- BG color = green --> <div class="skill-points"> 3 </div> <!-- BG color = yellow -->

2) También puede hacer uso de Map aquí como:

 const allSkillPoints = document.querySelectorAll(".skill-points"); const map = new Map() map.set(1, "red") .set(2, "green") .set(3, "yellow"); allSkillPoints.forEach(el => { const text = +el.textContent.trim(); el.style.backgroundColor = map.has(text) ? map.get(text) : "white"; })
 .skill-points { width: 50px; padding: 4px; margin: 4px; border: 1px solid #000; text-align: center; }
 <div class="skill-points"> 1 </div> <!-- BG color = red --> <div class="skill-points"> 2 </div> <!-- BG color = green --> <div class="skill-points"> 3 </div> <!-- BG color = yellow -->

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