事件委托:获取被点击 li 的下标

window.onload = function () {
  const oUl = document.getElementById("ul");
  const aLi = document.getElementsByTagName("li");

  oUl.onclick = function (event) {
    const e = event || window.event;
    const target = e.target || e.srcElement;
    if (target.nodeName.toLowerCase() === "li") {
      let index = -1;
      for (let i = 0; i < aLi.length; i++) {
        if (aLi[i] === target) {
          index = i;
          break;
        }
      }
      if (index >= 0) alert("我的下标是" + index);
      target.style.background = "red";
    }
  };
};

补充

补充:原笔记里写成 if (let i = 0; i < aLi.length; i++) —— if 条件里不能放 let 声明,这是非法语法。修正为正常 for 循环,并补了 break 提前结束;同时把字符串里 "我的下标是" + index 的中文引号配对补全。