将鼠标悬停在I标签上,更改其内部及其之前的字体图标

时间:2018-06-28 07:24:00

标签: javascript jquery html css

我有此代码:

<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>

我想将其更改为fa fa-star-o,例如,我将第三个i悬停在费率讲师中,我希望它和前2个仅在{{ 1}},类为fa fa-star-o。有可能吗?

我尝试过的代码:

div

1 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

$(".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");
})

演示

$(".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>