各位大佬
如何用原生JS实现类似JQuery的多节点绑定同一事件?
举个栗子:<button>1</button>
<button>1</button>
<button>1</button>Jquery:
$('button').onclick(function(){alert(1);})JavaScript:
function cTag(v,num){
  if(num==null){
     return document.getElementsByTagName(v);
     }else{
             return document.getElementsByTagName(v)[num];
     }
 }
上面的方法可获取指定的单个button节点,如何不用循环使所有button绑定同一个onclick事件?想实现类似上面Jquery的封装

解决方案 »

  1.   

    Jquery的$('button').click(function(){alert(1);})这种方式看似是只用了一条语句,但实际上是在click()方法的内部进行循环的,Jquery中所有设置属性的方法都是如此。
    Jquery内部都要用循环,原生JS当然也要用循环。除非是用委托式的绑定事件,事件委托到一个单一的父元素上,就可以不用循环每个元素了。
      

  2.   

    var buttons = document.getElementsByTagName("button");
    for(let b in buttons){
    buttons[b].onclick=function(){
    alert(+b+1);
    }
    }
      

  3.   

    少的话就写个方法 在html中onclcik()执行,多的话也可以学jq 自己定义一个$("button")
      

  4.   

    现实需求在那里?
    有什么必要?
    不如直接用jquery