简体   繁体   中英

Hover an I tag change the font icon inside it and before it

I have this code:

<div class="rate-instructors">
  <i class="fa fa-star"></i>
  <i class="fa fa-star"></i>
  <i class="fa fa-star"></i>
  <i class="fa fa-star"></i>
  <i class="fa fa-star"></i>
</div>

<div class="rate-activities">
  <i class="fa fa-star"></i>
  <i class="fa fa-star"></i>
  <i class="fa fa-star"></i>
  <i class="fa fa-star"></i>
  <i class="fa fa-star"></i>
</div>

I wanted to change it to fa fa-star-o , for example I hovered the 3rd i in rate-instructors, I wanted it and the first 2 to be in fa fa-star-o only in div with class rate-instructors . Is it possible?

My tried code:

 $('i').each(function() {
    $(this).attr('class','fa fa-star-o');
 });

You can do something like this:

$(".rate-instructors i,.rate-activities i").hover(function(){
  $(this).add($(this).prevAll("i")).removeClass("fa-star").addClass("fa-star-o");
  $(this).nextAll("i").removeClass("fa-star-o").addClass("fa-star");
})

Demo

 $(".rate-instructors i,.rate-activities i").hover(function(){ $(this).add($(this).prevAll("i")).removeClass("fa-star").addClass("fa-star-o"); $(this).nextAll("i").removeClass("fa-star-o").addClass("fa-star"); }) 
 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="rate-instructors"> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> </div> <div class="rate-activities"> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> </div> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM