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

144
Visualizações
Stars do not change color onclick

I have a problem with stars animation on my portfolio. It doesn't change the color. I do not know why this happened, because previously it worked fine.

$(".star").on('click', function() {

  document.getElementById("stars").value = this.id;
  for (let i = 0; i <= this.id; i++) {
    document.getElementById(this.id - i).style.color = "goldenrod";
  }

});
.d-inline { display:inline }
.star { cursor: pointer; font-size: 24px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<div id="ratingDiv">
  <div class="star d-inline" id="0">*<i class="fas fa-star stars"></i></div>

  <div class="star d-inline" id="1">*<i class="fas fa-star stars"></i></div>

  <div class="star d-inline" id="2">*<i class="fas fa-star stars"></i></div>

  <div class="star d-inline" id="3">*<i class="fas fa-star stars"></i></div>

  <div class="star d-inline" id="4">*<i class="fas fa-star stars"></i></div>
</div>

<br>
<input type="text" id="stars" value="" name="stars" hidden>
</p>

https://codepen.io/crazydeveloper09/pen/KKqqGGe

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

0

This should do the trick:

$(".star").on('click', function(){
  for(let i=0; i<= 4;i++){
    document.getElementById(i).querySelector('.fa-star').style.color = "";
  }
  for(let i=0; i<= this.id;i++){
    document.getElementById(i).querySelector('.fa-star').style.color = "goldenrod";
  }
});
about 4 years ago · Juan Pablo Isaza Relatório

0

you are changing color of your div element but star is present in element inside the div change the line inside the loop with this.

 document.getElementById(this.id-i).querySelector('.fa-star').style.color = "goldenrod";
about 4 years ago · Juan Pablo Isaza Relatório

0

you can use this method and contained click and hover

HTML:

<p>
    <p class="username" style="color: #F2AC57;"><%= language.__('Ocena') %></p>
    <div id="ratingDiv">
        <div class="star d-inline" id="0"><i class="fas fa-star stars"></i></div>
        <div class="star d-inline" id="1"><i class="fas fa-star stars"></i></div>
        <div class="star d-inline" id="2"><i class="fas fa-star stars"></i></div>
        <div class="star d-inline" id="3"><i class="fas fa-star stars"></i></div>
        <div class="star d-inline" id="4"><i class="fas fa-star stars"></i></div>
    </div>
    <br>
    <input type="hidden" id="stars" value="" name="stars" autocomplete="off" />
</p>

JS:

$(document).ready(function () {
    $(".star").on('click', function(){
        if($("#stars").val().length < 1){
            var id = $(this).attr('id');
            for(let i = 0; i <= id; i++){
                $('#'+i+' .stars').css({color:"goldenrod"});
            }
            $("#stars").val(id);
        }
    }).on("mouseover", function(){
        if($("#stars").val().length < 1){
            $('.stars').css({color:"black"});
            var id = $(this).attr('id');
            for(let i = 0; i <= id; i++){
                $('#'+i+' .stars').css({color:"goldenrod"});
            }
        }
    }).on("mouseout", function(){
        if($("#stars").val().length < 1){
            $('.stars').css({color:"black"});
        }
    });
});
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