获取在JavaScript中单击的类的索引。没有jQuery

时间:2015-10-30 20:31:14

标签: javascript mouseevent

编辑: 该建议指向一个jquery答案,我不想使用。我可能做得不好解释这个。当你点击一个类时,我想知道它是哪一个共享同一个名字的类。例如,如果页面上有8个按钮,其名称为' mybutton',当我点击其中一个时,我想知道它是哪个索引:mybutton [3]。

原帖: 有没有一种简单的方法来获取您单击的类的索引?我似乎无法在MouseEvent obj中找到任何内容。我搜索了stackoverflow / internet,但我能找到的东西似乎过于复杂,没有答案,或者使用jQuery。例如:

document.body.addEventListener('click',function(event){
        console.log(event.target.className);
        console.log(event.target.className.index??)`
    });

我觉得它应该很简单,不是吗?

1 个答案:

答案 0 :(得分:2)

没有“简单”的方法可以做到这一点;也就是说,DOM API并没有直接回答那种问题。但是,您可以只搜索符合您想要的任何特征的元素列表,并查看您的元素匹配哪个元素:

function indexIn(selector, element) {
  var list = document.querySelectorAll(selector);
  for (var i = 0; i < selector.length; ++i)
    if (list[i] === element) return i;
  return -1;
}

然后你的处理程序可以浏览点击元素上的.classList

document.body.addEventListener('click',function(event){
  for (var i = 0; i < this.classList; ++i)
    console.log("index for class " + this.classList[i] + ": " +
      indexIn("." + this.classList[i], this));
});