js仿淘宝和百度文库的评分功能


Posted in Javascript onMay 15, 2016

本文实例为大家分享了类似于淘宝和百度文库的评分功能,js实现,供大家参考,具体内容如下

效果如图:

js仿淘宝和百度文库的评分功能

五个五角星分别放在了一个table的五列中。下面是一个<p>,用来显示评分结果的;代码如下:

<body onload="changebg()">
 <table border="0" align="center" cellpadding="0" cellspacing="0" id="maintable">
  <tr style=" font-size:30px;">
   <td>☆</td><td>☆</td><td>☆</td><td>☆</td><td>☆</td>
  </tr>
 </table>
 <p align="center" id="result">您评了<label id="score"></label>分</p>

</body>

body的onload事件绑定的是一个方法,js代码如下:

<script type="text/javascript">
  function getindex(arr,element) {  //参数:数组,元素;返回兄弟元素的索引  
   for (var i = 0; i < arr.length; i++) {
    if (arr[i] == element) {
     return i;
    }
   }
   return -1;
  }

  function changebg() {  //为每个td设置获得焦点属性【也可以设置onclick属性】
   var maintable = document.getElementById("maintable");  //获取需要设置的表格
   var tds = maintable.getElementsByTagName("td");   //获取表格下的所有单元格
   document.getElementById("result").style.display = "none"; //设置得分结果为隐藏
   for (var i = 0; i < tds.length; i++) {
    var td = tds[i];
    td.onfocus = getonfocus;
    td.style.cursor = "pointer";
//为了设置鼠标放在五角星上呈手型
   }
    
  }
  function getonfocus(){  //设置td的焦点事件,
   var maintable = document.getElementById("maintable");
   var tds = maintable.getElementsByTagName("td");
   var index = getindex(tds, this);   //返回响应事件的索引 用this代表触发此事件的元素
   document.getElementById("result").style.display = "";  //得到分数后把结果显示出来
   document.getElementById("score").innerText = index + 1;
   for (var i = 0; i < index+1; i++) {
    tds[i].style.color = "red";
   }
   for (var i = index+1; i < tds.length; i++) {
    tds[i].style.color = "black";
   }

  }
 </script>

js代码主要有三个函数构成;

①:changebg();body的onload事件绑定的函数;为了实现对每个td元素绑定onfocus事件;

②:getonfocus();td元素onfocus事件的具体实现;

③:getindex();有两个参数,一个是td元素的集合数组,一个是相应事件的td元素,注意使用this关键字。主要返回相应事件的元素的索引,为了把响应事件元素之前的颜色显示成红色,后面的元素显示成黑色;

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
js字符编码函数区别分析
Dec 28 Javascript
Javascript中克隆一个数组的实现代码
Dec 06 Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 Javascript
JavaScript极简入门教程(三):数组
Oct 25 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
Jan 19 Javascript
js 中获取制定的cook信息实现方法
Nov 19 Javascript
Bootstrap表单控件学习使用
Mar 07 Javascript
vue2.0 elementUI制作面包屑导航栏
Feb 22 Javascript
React降级配置及Ant Design配置详解
Dec 27 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
Aug 04 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
Dec 20 Javascript
node 版本切换的实现
Feb 02 Javascript
RequireJS使用注意细节
May 15 #Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
May 15 #Javascript
jQuery插件开发汇总
May 15 #Javascript
Javascript的无new构建实例详解
May 15 #Javascript
Javascript基础知识盲点总结之函数
May 15 #Javascript
深入理解$.each和$(selector).each
May 15 #Javascript
js中最容易被忽视的事件问题大总结
May 15 #Javascript
You might like
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
初步解析Python下的多进程编程
2015/04/28 Python
Python3实现统计单词表中每个字母出现频率的方法示例
2019/01/28 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
python模块导入的方法
2019/10/24 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
python中selenium库的基本使用详解
2020/07/31 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
Oracle性能调优原则
2012/05/03 面试题
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
2016新年致辞
2015/08/01 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python