获取id的语法
//点击导航选择图片 for(n=0; n<len;n++){ nav[n].id=n;//此处用了nav[n].id有效,nav[n].getAttribute("id")无效 nav[n].onclick=function(){ alert(this.id);/*一个语法问题,为什么这边非要用this.id后 才有效果,用nav[n].getAttribute("id") 就不行*/ } }
为什么会出现这样的语法问题????
1
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕夭夭
2018-09-17 10:00:48
1.因为for循环中写点击事件 , 如下结构 :
如上中for循环能正常的输出0 ,1,2 . 而当i=3时 ,此时不满足for循环 , 就不会再输出3了 .虽然没有输出 , 但是此时i已经等于3 ,所以当你点击每个li时 , 由于for循环中会把最后一次的结果返回给点击事件 ,当点击任意一个li时 ,输出的都是3哦 .
同学所问的问题就是这个原理哦 . 如下
所以当你写nav[n].getAttribute("id")时 ,n拿到的值都是一样的 , 并且n的值已经超出最后一张图片的索引 ,无法获取到了哦 .
2.this.id , 点击事件中的this指向的是函数的调用者 . 也就是说 ,点击哪个元素时 ,this指向的就是谁哦 .所以this.id能够获取到点击当前元素的id.
建议同学自己测试一下 ,能够更好的帮助理解 , 祝学习愉快 ,望采纳
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星