问: i 会输出什么?改写成闭包的写法?

<a href="javaScript:void(0)">a</a>
<a href="javaScript:void(0)">b</a>
<a href="javaScript:void(0)">c</a> <script type='text/javascript'>
var arr = document.getElementsByTagName('a');
for(var i=0;i<arr.length;i++) {
arr[i].onclick = function() {
console.log(this + '我是第'+ i +'几个');
}
}
</script>

答:全部输出都是”我是第3个“

闭包写法可解决问题

<a href="javaScript:void(0)">a</a>
<a href="javaScript:void(0)">b</a>
<a href="javaScript:void(0)">c</a> <script type='text/javascript'> var arr = document.getElementsByTagName('a');
for(var i=0;i<arr.length;i++) {
(function(i,v){
v.onclick = function() {
console.log(this + '我是第'+ i +'个');
}
})(i,arr[i])
}
</script>

js的一个有意思的小题,闭包解决getElementByTagName的for循环绑定事件错误问题的更多相关文章

  1. JavaScript利用闭包循环绑定事件

    我们经常在做前端面试题的时候,会遇到循环绑定事件后,输出打印结果,很多人总是搞不清楚,今天借此机会跟大家梳理一下闭包相关作用. 1.首先我们举一个简单的例子. html部分: <a href=& ...

  2. php 有意思的小题

    /** * 你的是一个数字和一个字符串进行比较,PHP会把字符串转换成数字再进行比较.* PHP转换的规则的是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出0.***/1)$a =”abc ...

  3. 用js写一个贪吃蛇小游戏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 移动web开发中自己遇到的三个小题及解决方法

    大家好! 这是我第二次写随笔感想,有不足之处希望大家提出,我也算的上一个小白,自己进入前端行业也刚刚半年,在这里半年里我遇到一个技术大牛的好领导,让我在项目中学到很多,想和大家分享一下! 一. 移动端 ...

  5. creator cocos2d-js-min.js 文件廋身 变小 太大解决方法

    使用的 cocos creator 1.2 版本, 菜单栏 项目 -- 项目设置 -- 模块设置 里面 把不要的模块去掉

  6. for循环绑定事件,闭包思想!

    1.选项卡问题 总结:用alert()测试,是否得到对象. 2.闭包,解决作用域. <script> window.onload=function(){ var li=document.g ...

  7. 【小记录】解决链接libcufft_static.a库出现的错误

    程序中使用了 cv::cuda::dft() 函数,需要在链接的时候使用libcufft_static.a这个库.链接出现大量类似错误:error: undefined reference to __ ...

  8. js闭包解决多个点击事件

    <script> var severalObj=window.document.getElementsByName("button"); for(var i=0;i&l ...

  9. javascript闭包传参和事件的循环绑定

    今天看到一个javascript的题目,按常理循环绑定事件,但是得到的结果却不是想要的. <a href="#">text</a><br>< ...

随机推荐

  1. Oracle中恢复drop掉的表中的数据

    今天同事不小心把生产上的一张表直接drop掉了,没有做备份,哥们慌的一匹,来找我这个小白来帮忙解决,于是心血来潮简单总结一下. 其实在oralce中,用drop删掉一张表,其实不会真正的删除,只是把表 ...

  2. 001 SringBoot基础知识及SpringBoot整合Mybatis

    1.原有Spring优缺点分析 (1)优点 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品.无需开发重量级的Enterprise J ...

  3. my97整合fineui例子,开始和结束时间

      <f: Toolbar runat ="server">                             <Items>             ...

  4. 【Python爬虫案例学习】分析Ajax请求并抓取今日头条街拍图片

    1.抓取索引页内容 利用requests请求目标站点,得到索引网页HTML代码,返回结果. from urllib.parse import urlencode from requests.excep ...

  5. C++错题记录

    D. 通俗讲 , 前置++ : 先自增,再赋值    后置++: 先赋值,再自增 从反汇编中,可以看出: 前置++效率比后置++高 前置++: 自增后返回引用   后置++: 拷贝一份临时变量,再自增 ...

  6. 实现动态WEB内容

    在 system1 上配置提供动态web内容,要求: 1.动态内容由名为 wsgi.group8.example.com 的虚拟主机提供 2.虚拟主机侦听在端口 8909 3.从 http://ser ...

  7. igel udc2 config

    igel udc2 config 系统安装盘下载地址 http://www.myigel.biz/?forcedownload /config/bin/igelone_config #!/bin/sh ...

  8. kube-state-metrics 详解

    原文:https://mp.weixin.qq.com/s/176eyFBknzdA5wpiJrxDSg 概述 已经有了 cadvisor.heapster.metric-server,几乎容器运行的 ...

  9. Java项目之查询后分页

    一.Jsp页面: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  10. ORACLE SQL 笔记

    根据数据权限查询 SELECT * FROM ( SELECT ROWNUM AS ROWNO, AA.* FROM ( SELECT DISTINCT A.OBJECTID InstanceID , ...