javascript - 如何创建一个处理程序,该处理程序将返回列表元素 'ID' Clicked 的 'LI'

标签 javascript

我正在尝试创建一个处理程序,它将返回单击的列表元素的“ID”。我尝试了很多变体(有或没有 For 循环),但我似乎无法使其工作。感谢您的帮助。

脚本

function getItems () {
    var cList = document.getElementById("cMenu");
    var cItems = cList.getElementsByTagName("LI");

    for (var i = 0; i < cItems.length; i++) {

        cItems[i].onclick = function(){
            var theId = this.id;
        };
    }
    console.log(theId);
}

HTML 源代码

<ul id="cMenu">
  <li>
    Parent item 1
    <ul>
      <li id="item1">Child item 1</li>
      <li id="item2">Child item 2</li>
    </ul>
  </li>
  <li>
    Parent item 2
    <ul>
      <li id="item3">Child item 3</li>
      <li id="item4">Child item 4</li>
    </ul>
  </li>
</ul>

最佳答案

console.log(theId) 移至 onclick 函数中,并确保调用 getItems(),以便它运行一次以进行设置一切顺利。

jsFiddle

function getItems () {
    var cList = document.getElementById("cMenu");
    var cItems = cList.getElementsByTagName("LI");

    for (var i = 0; i < cItems.length; i++) {

        cItems[i].onclick = function(){
            var theId = this.id;
            console.log(theId);
        };
    }
}
getItems();

关于javascript - 如何创建一个处理程序,该处理程序将返回列表元素 'ID' Clicked 的 'LI',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15706555/

相关文章:

javascript - 如何独立于刷新率计时 requestAnimationFrame()

javascript - 收到 "No parameterless constructor defined"错误,不确定原因

php - 将 ID 变量传递给 javascript 函数

javascript - 新 chrome 和 opera 版本中的闪烁问题

javascript - 处理大型 JavaScript 项目的技巧

javascript - 从输入值创建 li 元素

javascript - Firefox javascript 解释器或 Firebug 跳过行

javascript - 选择更改时替换嵌套表单项? (Rails/AJAX/StimulusJS)

php - 部署我的第一个移动站点 : 3 newbie questions

javascript - 在初始化和调用之间重新定义函数