jQuery 五角星评分案例(详细代码)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      padding: 0;
      margin: 0;
    }
    .comment {
      font-size: 40px;
      color: rgb(247, 10, 6);
    }
    .comment li {
      float: left;
      cursor: pointer;
    }
    ul {
      list-style: none;
    }
  </style>
  <script src="jquery-3.4.1.js"></script>
  <script>
    $(function () {
      var wjx_none = '☆'; // 空心五角星
      var wjx_sel = '★'; // 实心五角星

      // 鼠标放上去当前的li和之前所有的li内容全部变为实心五角星,移开变为空心
      $('.comment li').on('mouseenter', function () {
        // 先让当前的变为实心
        // $(this).text(wjx_sel).prevAll('li').text(wjx_sel);
        // $(this).nextAll('li').text(wjx_none);

        // 两行代码傻傻分不清的时候需要用 end() 结束之后在使用,也就相当于重新一行再次使用 this
        $(this).text(wjx_sel).prevAll('li').text(wjx_sel).end().nextAll('li').text(wjx_none);
      })
      $('.comment li').on('mouseleave', function () {
        if ($('li.current').length === 0) {
          $('.comment li').text(wjx_none);
        }else{
          $('li.current').text(wjx_sel).prevAll('li').text(wjx_sel).end().nextAll('li').text(wjx_none);
        }
      })
      $('.comment li').on('click', function () {
        $(this).attr('class', 'current').siblings('li').removeAttr('class');
      })
    })
  </script>
</head>
<body>
  <ul class="comment">
    <li>☆</li>
    <li>☆</li>
    <li>☆</li>
    <li>☆</li>
    <li>☆</li>
  </ul>
</body>
</html>
  • demo 效果:

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HTML代码: ```html <div class="star-rating"> <span class="fa fa-star-o" data-rating="1"></span> <span class="fa fa-star-o" data-rating="2"></span> <span class="fa fa-star-o" data-rating="3"></span> <span class="fa fa-star-o" data-rating="4"></span> <span class="fa fa-star-o" data-rating="5"></span> <input type="hidden" name="rating" class="rating-value" value="0"> </div> ``` jQuery代码: ```javascript $(document).ready(function(){ $('.star-rating .fa').on('click', function(){ var rating = $(this).data('rating'); $(this).closest('.star-rating').find('.fa').removeClass('fa-star').addClass('fa-star-o'); $(this).prevAll('.fa').removeClass('fa-star-o').addClass('fa-star'); $(this).removeClass('fa-star-o').addClass('fa-star'); $(this).closest('.star-rating').find('.rating-value').val(rating); }); $('.star-rating .fa').on('mouseover', function(){ var rating = $(this).data('rating'); $(this).closest('.star-rating').find('.fa').removeClass('fa-star').addClass('fa-star-o'); $(this).prevAll('.fa').removeClass('fa-star-o').addClass('fa-star'); $(this).removeClass('fa-star-o').addClass('fa-star'); $(this).closest('.star-rating').find('.rating-value').val(rating); }); $('.star-rating').on('mouseout', function(){ var rating = $(this).find('.rating-value').val(); $(this).closest('.star-rating').find('.fa').removeClass('fa-star').addClass('fa-star-o'); $(this).find('.fa').each(function(index){ if (index < rating) { $(this).removeClass('fa-star-o').addClass('fa-star'); } else { $(this).removeClass('fa-star').addClass('fa-star-o'); } }); }); }); ``` 这段代码实现了一个五角星评分的功能,用户可以通过鼠标点击或鼠标滑过来选择评分,最终评分的值会保存在一个隐藏的input元素中,可以提交到后台进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值