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 相关文章推荐
script标签的 charset 属性使用说明
Dec 04 Javascript
JavaScript去掉数组中的重复元素
Jan 13 Javascript
JS生成不重复随机数组的函数代码
Jun 10 Javascript
jQueryMobile之Helloworld与页面切换的方法
Feb 04 Javascript
理解和运用JavaScript的闭包机制
Aug 13 Javascript
详解jQuery中的DOM操作
Dec 23 Javascript
JSON键值对序列化和反序列化解析
Jan 24 Javascript
angularjs路由传值$routeParams详解
Sep 05 Javascript
webpack4 处理SCSS的方法示例
Sep 03 Javascript
JavaScript学习笔记之图片库案例分析
Jan 08 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
Sep 24 Javascript
vue router 动态路由清除方式
May 25 Vue.js
详解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
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
PHP入门学习笔记之一
2010/10/12 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
PHP类的反射用法实例
2014/11/03 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
jQuery验证插件validate使用详解
2016/05/11 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
详解JS模块导入导出
2017/12/20 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
Yahoo的PHP面试题
2014/05/26 面试题
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
linux系统都有哪些运行级别
2016/03/26 面试题
社区包粽子活动方案
2014/01/21 职场文书
《这儿真好》教学反思
2014/02/22 职场文书
实用的简历自我评价
2014/03/06 职场文书
团队精神的演讲稿
2014/05/14 职场文书
项目投资意向书范本
2015/05/09 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书