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

怎样实现导航栏单击切换,单击第一个添加了一个class,但是怎么在单击第二个时,移除第一个的class

怎样实现导航栏单击切换,单击第一个添加了一个class,但是怎么在单击第二个时,移除第一个的class

笑出强大_0 2017-07-29 17:33:10
    window.onload = function(){        var li=document.getElementsByTagName("li");        for(var i=0;i<li.length;i++){            li[i].onclick = function(){                this.className="active";            }            li[i].className="";        }    }
查看完整描述

2 回答

已采纳
?
千秋此意

TA贡献158条经验 获得超187个赞

// 你这代码改改就行, 套两个循环直接取消所有的class

window.onload = function() {
    var li = document.getElementsByTagName("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";
        }
    }
}


// 或者把前一个li保存起来

window.onload = function() {
    var li = document.getElementsByTagName("li");
    var preNode = null;

    for (var i = 0; i < li.length; i++) {
        li[i].onclick = function() {
            if (preNode !== null) {
                preNode.className = '';
            }
            preNode = this;
            this.className = "active";
        }
    }
}

查看完整回答
2 反对 回复 2017-07-30
?
前端小蜗牛_

TA贡献9条经验 获得超5个赞

原生js:定义一个函数,把this对象作为参数,遍历li,进行对比,不满足条件就去掉。

jquery:..不谈,你这是原生js。。

查看完整回答
反对 回复 2017-07-29
  • 2 回答
  • 0 关注
  • 2031 浏览
慕课专栏
更多

添加回答

举报

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