为了账号安全,请及时绑定邮箱和手机立即绑定

关于清空元素的一段代码?

关于清空元素的一段代码?

qq_药药_0 2017-09-08 23:12:43
for(var k=0;k<arrLi.length;k++){    arrLi[k].index=k;arrLi[k].onclick=function () {    for(var k=0;k<arrLi.length;k++){       arrLi[k].className="";    }    arrLi[this.index].className ="hover";    };这段代码是清空所有样式,给当前点击的元素样式但是没效果。想问下,哪里出错了;
查看完整描述

2 回答

已采纳
?
精慕门9254224

TA贡献167条经验 获得超46个赞

你的第二个k,在第一个k 的作用域内,系统会把两个k当做同一个变量的!所以把click 函数中的计数器变量名字换一下就好!另外你想要的这个功能其实用jq 只需要两行代码就搞定!不用这么麻烦!

查看完整回答
反对 回复 2017-09-09
  • 橋本奈奈未
    橋本奈奈未
    虽然同一个变量不好,逻辑也确实不需要这样写,不过这段代码除了少了个"}"是没问题的,同名变量会覆盖且k变量在事件触发回调里被重新初始化了,所以不影响。
  • 精慕门9254224
    精慕门9254224
    会有影响的,你可以打个debug ,跟一下如果循环次数多的时候,内循环将k 值加到很大,到外循环直接取这个k去判断外循环的表达式2,将会少掉多次循环!我曾经就遇到过这种情况,因为他定义k在表达式1的位置定义,而循环只有第一次会进入外循环的表达式1!
  • 橋本奈奈未
    橋本奈奈未
    内部循环是放在事件回调里的,不影响,试过了。
点击展开后面2
?
橋本奈奈未

TA贡献436条经验 获得超108个赞

这是你完整代码??少了个"}"

查看完整回答
反对 回复 2017-09-09
  • qq_药药_0
    qq_药药_0
    不好意思少写了个括号,但是还是不行。我给循环去了,能给当前点击元素添加样式。但是想在每次点击之前去除所有样式这段代码不知道怎么写
  • qq_药药_0
    qq_药药_0
    问了下老师,事件冒泡了。只不过还是谢谢你们
  • 2 回答
  • 0 关注
  • 1715 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信