用原生JS实现点击li的时候 给ui下的li的class添加active 其他的li的class被移除

weixin_37381475 2017-08-02 10:41:30

.active{
backround:red;
}
<div class="por">
<ul>
<li class="active">1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
...全文
1246 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_44446326 2019-05-15
  • 打赏
  • 举报
回复
<style> .active {background: red;} </style> <div class="por"> <ul> <li class="active">1</li> <li>2</li> <li>3</li> </ul> </div> <script> var li = document.querySelectorAll('.por li'); for (var i = 0; i < li.length; i++) li[i].onclick = function () { for (var i = 0; i < li.length; i++) li[i].className = ''; this.className='active' } </script>
天际的海浪 2019-05-15
  • 打赏
  • 举报
回复
引用 3 楼 qq_34502692 的回复:
[quote=引用 2 楼 weixin_44446326 的回复:] <style> .active {background: red;} </style> <div class="por"> <ul> <li class="active">1</li> <li>2</li> <li>3</li> </ul> </div> <script> var li = document.querySelectorAll('.por li'); for (var i = 0; i < li.length; i++) li[i].onclick = function () { for (var i = 0; i < li.length; i++) li[i].className = ''; this.className='active' } </script>
for循环里面嵌套for循环还能用i吗?[/quote] 一般的for循环嵌套for循环是双重循环,双重循环通常是在同一作用域中不能用同名的循环变量的。 但这个代码却不是双重循环,里面的for循环是在onclick事件中,与外面的for循环没有什么关系,两个循环不在同一作用域。 外面的for循环只是为li绑定事件,并不执行里面的for循环。 只有事件触发时才执行里面的for循环,这时外面的for循环早就执行完了。 外面循环变量i在事件中是不需要的,就可以用同名的循环变量(有使用闭包的情况除外)
qq_34502692 2019-05-15
  • 打赏
  • 举报
回复
引用 2 楼 weixin_44446326 的回复:
<style> .active {background: red;} </style> <div class="por"> <ul> <li class="active">1</li> <li>2</li> <li>3</li> </ul> </div> <script> var li = document.querySelectorAll('.por li'); for (var i = 0; i < li.length; i++) li[i].onclick = function () { for (var i = 0; i < li.length; i++) li[i].className = ''; this.className='active' } </script>
for循环里面嵌套for循环还能用i吗?
  • 打赏
  • 举报
回复
<style>
.active {background: red;}
</style>
<div class="por">
    <ul>
        <li class="active">1</li>
        <li>2</li>
        <li>3</li>
    </ul>
</div>
<script>
    var li = document.querySelectorAll('.por li');
    for (var i = 0; i < li.length; i++)
        li[i].onclick = function () {
            for (var i = 0; i < li.length; i++) li[i].className = '';
            this.className='active'
        }
</script>

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧