小黄练编程 发表于 2022-3-30 20:32:33

为何这里的this改为li【i】会报错啊,是不是哪里不规范

        var li=document.getElementsByTagName('li');
                for(var i=0;i<li.length;i++){
                        li.onclick=function(){
                        for(var i=0;i<li.length;i++)
                        {
                                li.style.backgroundColor='';
                        }
                        this.style.backgroundColor='pink';
                }
        }
我又碰到个小问题,为何这里的this改为li【i】会报错啊,是不是哪里不规范???

ba21 发表于 2022-3-30 20:35:27

var li=document.getElementsByTagName('li');
                for(var i=0;i<li.length;i++){
                        li.onclick=function(){
                        for(var i=0;i<li.length;i++)
                        {
                              li.style.backgroundColor='';
                        }
                      this.style.backgroundColor='pink';
                }
      }

不在一个作用域

小黄练编程 发表于 2022-3-30 20:41:50


怪不得我把最后this改为li【i】中的i改为别的字母a,外层for循环的i统统改成a也没用,该函数里的for里的i没改,原来如此,如果我就想用li【i】不用this,咋办。咋解决

ba21 发表于 2022-3-30 20:42:57

小黄练编程 发表于 2022-3-30 20:41
怪不得我把最后this改为li【i】中的i改为别的字母a,外层for循环的i统统改成a也没用,该函数里的for里的i ...

li.onclick=function(){
                        for(var i=0;i<li.length;i++)
                        {
                              li.style.backgroundColor='';
在这里判断不就好了。
                        }

小黄练编程 发表于 2022-3-30 20:45:28

ba21 发表于 2022-3-30 20:42
li.onclick=function(){
                        for(var i=0;i

,我目的是先让其他所有li的颜色无,然后单独给绑定了点击事件的li颜色改为pink,
在这里咋判断?

ba21 发表于 2022-3-30 20:50:07

小黄练编程 发表于 2022-3-30 20:45
,我目的是先让其他所有li的颜色无,然后单独给绑定了点击事件的li颜色改为pink,
在这里咋判断?

新开贴,把源码全部传上来。

小黄练编程 发表于 2022-3-30 21:01:28

ba21 发表于 2022-3-30 20:50
新开贴,把源码全部传上来。

也没啥源码,这就是最主要的一段js
页: [1]
查看完整版本: 为何这里的this改为li【i】会报错啊,是不是哪里不规范