js如何通过for循环为每个对象添加事件 15
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{list-style:none;padding:0;margin:0;}
ul{margin:auto}
li{line-height:30px;margin:10px;}
</style>
<script>
window.onload=function(){
var oUl=document.getElementsByTagName('ul')[0];
var oLi=oUl.getElementsByTagName('li');
for(var i=0;i<oLi.length;i++)
{
oLi[i].onclick=function(){
alert(i);
}
}
}
</script>
</head>
<body>
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
<li>444</li>
</ul>
</body>
</html>
上面的代码,我想通过for循环为每一个li添加一个onclick事件,即点击每个li弹出该li的序列,为什么点击只是弹出第四个的结果? 展开
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{list-style:none;padding:0;margin:0;}
ul{margin:auto}
li{line-height:30px;margin:10px;}
</style>
<script>
window.onload=function(){
var oUl=document.getElementsByTagName('ul')[0];
var oLi=oUl.getElementsByTagName('li');
for(var i=0;i<oLi.length;i++)
{
oLi[i].onclick=function(){
alert(i);
}
}
}
</script>
</head>
<body>
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
<li>444</li>
</ul>
</body>
</html>
上面的代码,我想通过for循环为每一个li添加一个onclick事件,即点击每个li弹出该li的序列,为什么点击只是弹出第四个的结果? 展开
1个回答
展开全部
window.onload = function(){
var li = document.getElementsByTagName("li");
for(i=0; i<li.length; i++){
li[i].onclick = function(){
alert(this.innerHTML);
}
}
}
var li = document.getElementsByTagName("li");
for(i=0; i<li.length; i++){
li[i].onclick = function(){
alert(this.innerHTML);
}
}
}
追问
其实我的目的不是为了最终的输出,我是想通过循环结构,给每一个对象添加onclick事件,为了解决此类问题的,听说会涉及到闭包什么的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询