var ul = document.getElementsByTagName("ul")[0];
ul.onclick = function(){
var e = arguments[0] || window.event,
target = e.srcElement ? e.srcElement : e.target;
if(target.nodeName.toLowerCase() == "li"){
alert(target.id.slice(-1))
}
}
[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
将暂时变量保留于元素节点上。
复制代码 代码如下:
var lists = document.getElementsByTagName("li");
for(var i=0,t=0,el; el = list[i++];){
el.i = t++
el.onclick = function(){
alert(this.i)
}
}
[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
使用with语句造成的对象闭包。
复制代码 代码如下:
var els = document.getElementsByTagName("li")
for(var i=0,n=els.length;i<n;i++){
with ({i:i})
els[i].onclick = function() { alert(this.innerHTML+i) };
}
[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
使用try...catch语句构造的异常闭包:
复制代码 代码如下:
var lists = document.getElementsByTagName("li");
for(var i=0,l=lists.length; i < l; i++){
try{
throw i;
}catch(i){
lists[i].onclick = function(){
alert(i)
}
}
}
[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
复制代码 代码如下:
var els = document.getElementsByTagName("li");
(''+Array(els.length+1)).replace(/./g,function(a,i){
els[i].onclick=function(){alert(i)}
})
您可能感兴趣的文章: