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 相关文章推荐
js中判断数字\字母\中文的正则表达式 (实例)
Jun 29 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 Javascript
JavaScript函数详解
Feb 27 Javascript
跟我学习javascript的全局变量
Nov 16 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
Jan 25 Javascript
JavaScript中的原型prototype完全解析
May 10 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
原生JS实现层叠轮播图
May 17 Javascript
深入了解响应式React Native Echarts组件
May 29 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
Jul 19 Javascript
如何通过shell脚本自动生成vue文件详解
Sep 10 Javascript
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
详解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获取地址栏信息的代码
2008/10/08 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
javascript移动开发中touch触摸事件详解
2016/03/18 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
Python+django实现文件下载
2016/01/17 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
MySQL Server层四个日志的实现
2022/03/31 MySQL