点击li获取下标的几种方式(原生JS实现)

Posted 阿凡凡没有提

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了点击li获取下标的几种方式(原生JS实现)相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>点击li获取下标的几种方式</title>
</head>
<body>
  <h1>点击li获取下标的几种方式</h1>
  <ul>
    <li>红的</li>
    <li>蓝的</li>
    <li>紫的</li>
    <li>绿的</li>
    <li>白的</li>
    <li>黄的</li>
    <li>黑的</li>
  </ul>
  <script>
    var list = document.querySelectorAll(\'li\')

    // 第一种:for循环获取下标i
    // for (var i = 0; i < list.length; i++) {
    //   list[i].index = i // 自定义属性发编号
    //   list[i].onclick = function () {
    //     console.log(this.index)
    //   }
    // }

    // 第二种:let的块级作用域属性获取到的是每个独立i
    // for (let i = 0; i < list.length; i++) {
    //   list[i].onclick = function () {
    //     console.log(i)
    //   }
    // }

    // 第三种:伪数组转数组forEach遍历
    // Array.from(list).forEach(function (li, index) {
    //   li.onclick = function () {
    //     console.log(index)
    //   }
    // })

    // 第四种:每个闭包都有一个自己的index
    for (var i = 0; i < list.length; i++) {
      // 立即执行函数把i作为实参,传递进去了,index接收,在内层函数里使用
      // 每个事件都构成了一个闭包,每个闭包里都有一个自己的index
      list[i].onclick = (function (index) {
        return function () {
          console.log(index)
        }
      })(i)
    }
  </script>
</body>
</html>


以上是关于点击li获取下标的几种方式(原生JS实现)的主要内容,如果未能解决你的问题,请参考以下文章

原生js实现文件下载的几种情况

原生js实现一个连连看小游戏-----------点击列表获取索引

a标签调用js的几种方法

JS如何给ul下的所有li绑定点击事件,点击使其弹出下标和内容

JS如何给ul下的所有li绑定点击事件,点击使其弹出下标和内容

原生js如何绑定a连接点击事件?