Var buttons = document.getelementsbytagname (tag name
)
For(var i=0,i<buttons.length;i++){
Buttons[i].onclick=function(e){
Document.getelementbyid(id).innerHTML=e.target.innerHTM}
}
三个问题:1.从for开始,下边的代码怎么解释,逐行解释
2.上面的函数是怎么调用的,不要解释冒泡阶段和捕捉阶段,就说说是e.target。innerHTML触发调动函数还是button[i]触发
3.函数调动之后的结果是啥
4.函数调动之后的结果赋予button.[i].onclick又是啥意思
求详解
注意大小写
var buttons = document.getElementsByTagName ('tag name')//获取tag name指定的dom对象,返回dom数组
for (var i = 0; i < buttons.length; i++) {//buttons是数组,执行遍历
buttons[i].onclick = function (e) {//给遍历到的dom对象添加onclick事件,这样添加的事件只有一个参数就是事件参数,不过要兼容ie8-要使用下面的方法,ie8-的事件存储在window.event对象中,不直接通过函数传递
e = e || window.event;
//e.target e.srcElement就是当前点击的对象。如果是buttons对象直接this对象就行了。如<div><b>11</b>22</div>这种结构,点击b,e.target是b,而this对象为当前buttons[i]对象
document.getElementById(id).innerHTML =//获取id对象设置他的innerHTML
(e.target//标准浏览器
||e.srcElement//IE8-
).innerHTML//当前点击对象的innerHTML属性,就是里面的html代码
}
}
你的for循环为每一个button设置点击事件,当你点击button时会触发执行后面的匿名函数,事件发生时,浏览器会自动产生一个事件对象,由匿名函数的参数e接受,通过这个事件对象的一个属性也就是e.target,你可以得到事件目标,也就是在什么元素下触发事件
由于匿名函数中,你的id跟你的i没关系,就这么点代码的话,你的代码就是想给一个元素设置内容,然后内容值就是你的触发事件的目标元素的内容