站长资源网络编程

js星星评分效果

整理:jimmy2026/8/5浏览2
简介html如下:
  • html如下:

    <div class="starts">
     <ul id="pingStar">
      <li rel="1" title="特别差,给1分"></li>
      <li rel="2" title="很差,给2分"></li>
      <li rel="3" title="一般般,给3分"></li>
      <li rel="4" title="很好,给4分"></li>
      <li rel="5" title="非常好,给5分"></li>
      <span id="dir"></span>
     </ul>
     <input type="hidden" value="" id="startP">
    </div>

    css样式:

    .starts,.starts ul{float:left;}
    .starts{padding-left:16px;padding-top:7px;}
    .starts ul li{width:32px;height:31px;float:left;background:#ddd;padding-right:3px;}
    .starts ul li.on{background:red;}
    .starts ul span{display:inline;float:left;padding-left:10px;height:31px;line-height:31px;}

    最后js调用如下:

    window.onload = function () {
     var s = document.getElementById("pingStar"),
      m = document.getElementById('dir'),
      n = s.getElementsByTagName("li"),
      input = document.getElementById('startP'); //保存所选值
     clearAll = function () {
      for (var i = 0; i < n.length; i++) {
       n[i].className = '';
      }
     }
     for (var i = 0; i < n.length; i++) {
      n[i].onclick = function () {
       var q = this.getAttribute("rel");
       clearAll();
       input.value = q;
       for (var i = 0; i < q; i++) {
        n[i].className = 'on';
       }
       m.innerHTML = this.getAttribute("title");
      }
      n[i].onmouseover = function () {
       var q = this.getAttribute("rel");
       clearAll();
       for (var i = 0; i < q; i++) {
        n[i].className = 'on';
       }
      }
      n[i].onmouseout = function () {
       clearAll();
       for (var i = 0; i < input.value; i++) {
        n[i].className = 'on';
       }
      }
     }
    }

    查看演示 http://demo.jb51.net/js/2014/jsxxdf/

    如果有喜欢使用基于jquery的星星打分效果,可以参考这个地址:https://www.jb51.net/jiaoben/195077.html