当前位置:网站首页>for循环和单击相应函数的执行顺序问题
for循环和单击相应函数的执行顺序问题
2022-08-11 08:30:00 【LEVI_104】
问题代码如下:
//研究点击for循环和单击相应函数的执行顺序问题
window.onload = function(){
//获取所有的超链接
var allA = document.getElementsByTagName("a");
//为每一个超链接绑定一个单击响应函数
for(var i = 0; i < allA.length; i++){
allA[i].onclick = function(){
//正确代码应该是使用this,而不是allA[i],而使用allA[i]就会发生错误
//this:this指的是当前的第i个超链接本身
alert(allA[i]);
return false;
}
}
}
问题复现:当网页加载完毕,点击按钮之后,无法执行相应操作(function()函数)
分析:网页在加载的时候,执行for循环,同时赋予每一个超链接按钮一个单击响应函数。然后网页加载完毕,for循环也执行完毕了。此时,for循环的i为allA.length。当我们点击超链接按钮的时候,触发的绑定函数中的allA[i]始终是allA[allA.length],执行失败。
修改:alert(allA[i])---------------->alert(this)。分析这么做的原因:不需要allA[i]找到超链接,this会指向超链接本身
边栏推荐
- Alibaba Sentinel - Slot chain解析
- Rust从入门到精通06-函数
- FPGA 20个例程篇:11.USB2.0接收并回复CRC16位校验
- 磁盘管理:磁盘结构
- 分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
- Analysys and the Alliance of Small and Medium Banks jointly released the Hainan Digital Economy Index, so stay tuned!
- 选择收银系统主要看哪些方面?
- Getting Started with Kotlin Algorithms Calculating Prime Factors
- 法律顾问成了律所鸡肋产品了吗?
- Mysql JSON对象和JSON数组查询
猜你喜欢
进阶-指针
golang string manipulation
Nuget找不到包的问题处理
Unity3D - modification of the Inspector panel of the custom class
2022-08-10:为了给刷题的同学一些奖励,力扣团队引入了一个弹簧游戏机, 游戏机由 N 个特殊弹簧排成一排,编号为 0 到 N-1, 初始有一个小球在编号 0 的弹簧处。若小球在编号为 i 的弹
Creo9.0 特征的成组
9、Neural Sparse Voxel Fields
XXL-JOB 分布式任务调度中心搭建
轻量级网络(一):MobileNet V1,V2, V3系列
pycharm中绘图,显示不了figure窗口的问题
随机推荐
go-grpc TSL authentication solution transport: authentication handshake failed: x509 certificate relies on ... ...
查询跟踪快递单号物流,智能分析物流中转有延误的单号
向日葵安装教程--向日葵远程桌面控制
对比学习系列(三)-----SimCLR
法律顾问成了律所鸡肋产品了吗?
【Day_13 0509】▲跳石板
pycharm中绘图,显示不了figure窗口的问题
CSDN21天学习挑战赛——封装(06)
基于微信小程序的租房小程序
One network cable to transfer files between two computers
如何通过开源数据库管理工具 DBeaver 连接 TDengine
Find the latest staff salary and the last staff salary changes
Active users of mobile banking grew rapidly in June, hitting a half-year high
C Primer Plus(6) 中文版 第1章 初识C语言 1.7 使用C语言的7个步骤
[C语言] sscanf如何实现sscanf_s?
初级软件测试工程师笔试试题,你知道答案吗?
redis operation
记录一些遇见的bug——Lombok和Mapstruct的冲突导致,A component required a bean of type ‘com.XXX.controller.converter.
string类接口介绍及应用
2022-08-10:为了给刷题的同学一些奖励,力扣团队引入了一个弹簧游戏机, 游戏机由 N 个特殊弹簧排成一排,编号为 0 到 N-1, 初始有一个小球在编号 0 的弹簧处。若小球在编号为 i 的弹