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 相关文章推荐
open 动态修改img的onclick事件示例代码
Nov 13 Javascript
JS获得选取checkbox整行数据的方法
Jan 28 Javascript
SublimeText自带格式化代码功能之reindent
Dec 27 Javascript
js HTML5 Ajax实现文件上传进度条功能
Feb 13 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
Jul 19 Javascript
JS简单验证上传文件类型的方法
Apr 17 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
May 02 Javascript
解决vue-cli中stylus无法使用的问题方法
Jun 19 Javascript
AngularJS中scope的绑定策略实例分析
Oct 30 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
Mar 09 Javascript
十分钟教你上手ES2020新特性
Feb 12 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获取网站域名和地址的代码
2008/08/17 PHP
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
display和visibility的区别示例介绍
2014/02/26 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
Python中表示字符串的三种方法
2017/09/06 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
python实现决策树分类
2018/08/30 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
几个数据库方面的面试题
2016/07/01 面试题
2014大学校园光棍节活动策划书
2014/09/29 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书
2014年环保工作总结
2014/11/26 职场文书
详解python网络进程
2021/06/15 Python