<!DOCTYPE HTML>
<html>
<body>
<link type="text/css" rel="stylesheet" href="example.css">
<div class="d1">1
<div class="d2">2
<div class="d3">3
</div>
</div>
</div>
<script>
var divs = document.getElementsByTagName('div')
for(var i=0; i<divs.length; i++) {
divs[i].onclick = function(e) {
e = e || event
var target = e.target || e.srcElement
this.style.backgroundColor='yellow'
alert("target = "+target.className+", this="+this.className)
this.style.backgroundColor = ''
}
}
</script>
</body>
</html>
以上代码来自http://javascript.info/tutorial/bubbling-and-capturing
问题:
divs[i].onclick
,divs
是htmlcollection, 不是arrary, 怎么能用数组样式:array[i]
? 对于事件处理程序,为什么我们不放在var
它前面(例如var divs[i].onclick
)?e = e || event
,为什么放在event
这里?为什么不放在var
前面e
,是因为e
是全局变量吗?