Javascript 检查单击的元素及其编号 window.onload=function(){ var elementts=document.getElementsByClassName('cells'); for(var i=0;i

Javascript 检查单击的元素及其编号 window.onload=function(){ var elementts=document.getElementsByClassName('cells'); for(var i=0;i,javascript,Javascript,我试图检查元素clicked和它的编号。如何做到这一点?您可以通过将eventListener附加到元素来检查元素是否已被单击。例如: window.onload = function() { var elementts = document.getElementsByClassName('cells'); for(var i = 0; i < elementts.length; i++) { var show_clicked = elementts[i];

我试图检查元素clicked和它的编号。如何做到这一点?

您可以通过将eventListener附加到元素来检查元素是否已被单击。例如:

window.onload = function() {
    var elementts = document.getElementsByClassName('cells');
    for(var i = 0; i < elementts.length; i++) {
        var show_clicked = elementts[i];
        if( show_clicked.onclick==true && show_clicked.length==0){
            alert("1");
        }else if( show_clicked.onclick==true && show_clicked.length==1){
            alert("2");
        }else if( show_clicked.onclick==true && show_clicked.length==2){
            alert('3');
        }else{

        }
    }
}
此代码将在每次单击“元素”时触发“myFunction”

在您的情况下,您有一个元素列表。您想确定刚刚单击了列表中的哪个元素

其中一种方法是:

  • 选择元素列表并将其分配给变量(就像您所做的那样)
  • 将此列表转换为数组
  • 将eventListener附加到列表的父元素,并使用冒泡检查单击了哪个子元素
  • 如果单击了存储在数组中的某个元素,则启动该函数(在下面的示例中-记录到数组中已单击元素的控制台索引)
  • 这不是最好的解决办法,但我希望它显示了如何解决这个问题的一般概念。下面是示例实现:

    element.addEventListener('click', myFunction);
    
    有用的文章:

    • 将节点列表转换为阵列:

    • 事件侦听器:

    • 冒泡:


      • 我认为window.onload对你没有帮助。你需要一种事件监听器。只需一个简单的解决方案,你可以尝试给你考虑的元素加上相应的ID号。您可以使用以下内容:

        var parentElement = document.getElementById('parentElement')
        var elements = document.getElementsByClassName('elements');
        var elementsArr = Array.apply(null, elements);
        
        parentElement.addEventListener('click', function(event) {
          if (elementsArr.indexOf(event.target > -1)) {
            console.log(elementsArr.indexOf(event.target));
          }
        }, true);
        

        这将为您提供单击元素的id号。

        您将需要使用处理程序
        onclick==true
        永远不会工作
        window.onclick= function(event){alert(event.target.id);}