ES6函数实现排它两种写法解析


Posted in Javascript onMay 13, 2020

排它思想:清除其它所有的没有选中元素的样式, 只设置当前选中元素的样式

html代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  
</head>
<body>
<ul>
  <li class="current">我是第1个li</li>
  <li>我是第2个li</li>
  <li>我是第3个li</li>
  <li>我是第4个li</li>
  <li>我是第5个li</li>
  <li>我是第6个li</li>
  <li>我是第7个li</li>
  <li>我是第8个li</li>
</ul>

</body>
</html>

css代码

<style>
    *{
      margin: 0;
      padding: 0;
    }
    ul{
      list-style: none;
      margin: 100px auto;
      width: 300px;
      height: 400px;
      border: 1px solid #000;
    }
    ul>li{
      font-size: 30px;
      font-weight: bold;
      margin-bottom: 10px;
      cursor: default;
    }

    .current{
      background-color: brown;
    }
  </style>

JavaScript代码

<script>
  /*
  // es6之后的写法
  let items = document.querySelectorAll("li");
  let previousIndex = 0;
  for (let i = 0; i < items.length; i++) {
    // let currentItem = items[i];
    items[i].onclick = function () {
      items[previousIndex].className = "";
      this.className = "current";
      previousIndex = i;
      // console.log(previousIndex);
    };
  }
  */

  // es6之前的写法
  var items = document.querySelectorAll("li");
  var previousIndex = 0;
  for (var i = 0; i < items.length; i++) {
    (function (index) {
      items[index].onclick = function () {
        items[previousIndex].className = "";
        this.className = "current";
        previousIndex = index;
      };
    })(i);
  }
</script>

运行效果

ES6函数实现排它两种写法解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 代码也可以变得优美的实现方法
Jun 22 Javascript
jQuery Dialog 弹出层对话框插件
Aug 09 Javascript
js constructor的实际作用分析
Nov 15 Javascript
JavaScript语言核心数据类型和变量使用介绍
Aug 23 Javascript
js onload事件不起作用示例分析
Oct 09 Javascript
让新消息在网页标题闪烁提示的jQuery代码
Nov 04 Javascript
js获取对象为null的解决方法
Nov 21 Javascript
js自制图片放大镜功能
Jan 24 Javascript
微信小程序云开发使用方法新手初体验
May 16 Javascript
Node绑定全局TraceID的实现方法
Nov 14 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
Oct 24 Javascript
JavaScript实现网页动态生成表格
Nov 25 Javascript
详解vue-router的Import异步加载模块问题的解决方案
May 13 #Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
May 13 #Javascript
原生JS实现汇率转换功能代码实例
May 13 #Javascript
JavaScript Tab菜单实现过程解析
May 13 #Javascript
JQuery事件冒泡和默认行为代码实例
May 13 #jQuery
element中el-container容器与div布局区分详解
May 13 #Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 13 #Javascript
You might like
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
php操作mysqli(示例代码)
2013/10/28 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
Python实现统计单词出现的个数
2015/05/28 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
关于Python面向对象编程的知识点总结
2017/02/14 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
详解python做UI界面的方法
2019/02/27 Python
python之yield和Generator深入解析
2019/09/18 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
Django在Model保存前记录日志实例
2020/05/14 Python
python如何设置静态变量
2020/09/07 Python
越南综合购物网站:Lazada越南
2019/06/10 全球购物
财务副总经理工作职责
2013/11/25 职场文书
2014年超市工作总结
2014/11/19 职场文书
大学生实习推荐信
2015/03/27 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
教师节表彰会主持词
2015/07/06 职场文书
Android 中的类文件和类加载器详情
2022/06/05 Java/Android