原生js之同级元素添加移除class

<div class="tp-bottom-content">
            <div class="tp-nav">
                <ul id="nav">
                    <li class="active"><span>快速跟进</span></li>
                    <li ><span>跟进</span></li>
                    <li><span>联系人(1)</span></li>
                    <li><span>通话记录(1)</span></li>
                    <li><span>订单(1)</span></li>
                    <li><span>合同(1)</span></li>
                </ul>
            </div>
            <div class="content-list">
                <div class="list-item">1</div>
                <div class="list-item" style="display: none;" >2</div>
                <div class="list-item" style="display: none;" >3</div>
                <div class="list-item" style="display: none;" >4</div>
                <div class="list-item" style="display: none;" >5</div>
                <div class="list-item" style="display: none;" >6</div>
            </div>
        </div>

初次完成的js

var li = document.getElementById("nav").getElementsByTagName("li");
            var listItem = document.getElementsByClassName("list-item");
            var length = li.length;
            for (var i = 0; i < length; i++) {
                li[i].index = i;
                li[i].onclick = function() {
                    li[this.index].setAttribute("class","active");
                    for (var j = 0; j < length; j++) {
                        li[j].className = "";
                        listItem[j].style.display = "none";
                    };
                    listItem[this.index].style.display = "block";
                    this.className = "active";
                }
            };
时间: 2024-10-10 09:38:38

原生js之同级元素添加移除class的相关文章

通过原生JS实现为元素添加事件

自己写了一个为元素添加事件的方法,并封装到对象中. 说明: id : 目标元素的ID type: 事件的类型,注意的是不能加on fn:事件处理程序 isBubble :规定事件流 代码: var bindEvent = { 'add':function(id,type,fn,isBubble){ var dom = document.getElementById(id); if(!isBubble) isBubble=false; if(dom.addEventListenner){ dom.

原生js跨浏览事件绑定(移除)/javascript事件绑定(移除)

网上找了半天没看到,都是基于ie attachEvent(有诸多的问题存在)来写的,所以手动写了个js模拟绑定事件希望能帮到需要的童鞋 addEvent = function(obj,type,fn){  if(obj.addEventListener) {//W3C   obj.addEventListener(type,fn,false);  }else if (obj.attachEvent) {//ie(期待它的灭亡)   if(!obj.events) obj.events = {};

js 动态给元素添加、移除事件

最近项目中要要到 js动态给给元素绑定事件,刚好之前没用到过这些,顺便学习一下,于是google了一下 事件,写了如下两个事件 一个添加事件 ,一个是移除事件addEventListener(),removeEventListener()用于处理指定和删除事件处理程序的操作作用域:事件处理程序会在其所属元素的作用域内运行addEventListener(event,function,capturebubble);removeEventListener(event,function,capture

原生js获取Html元素的实际宽度高度

第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第二种情况就是宽和高是写在行内中,比如style="width:120px;",这中情况通过上述2个方法都能拿到宽度. 小结,因为id.offsetWidth和id.offsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候最好用这2个属性.注意如果不是写在行内styl

原生JS获取操作元素

操作元素自定义属性 h5方法 设置语法:<p data-自定义属性名 = '自定义属性值'></p> 属性名想叫什么就叫什么,可以用多个 -连接 <p data-名称-名称 = '自定义属性值'></p> 获取语法**:element.dataset.自定义属性名如果属性名用多个-连接 ,获取时应将属性名以-为分割符,驼峰方式获取 无兼容性方法 设置语法**:属性名想叫什么就叫什么,可以用多个 -连接 操作元素所有(标准.自定义)属性 获取元素属性 语法:e

原生js判断某个元素是否有指定的class名的几种方法

[注意]以下方法只对class只有一个值的情况下操作 ************************************************************* 结构部分: <div>   <p>1</p>   <p class="test">2</p>   <p>3</p> </div> *******************************************

原生js如何判断元素出现在可视区

元素出现在可视区 scorll滑动的距离>=当前元素距离浏览器最顶端的高度+当前元素自身的高度-当前可视区的高度 触底 scorll滑动的距离>=当前scroll总高度-当前可视区的高度 原文地址:https://www.cnblogs.com/wuqilang/p/11253618.html

原生js获取子元素、给元素增加div

//鼠标移入移出动画 window.onload = function () { var el = document.createElement('div'); el.className = "bg"; var obj_lis = document.getElementById("list").getElementsByTagName("a"); for (i = 0; i < obj_lis.length; i++) { obj_lis[

原生JS获取元素宽高实践详解

开篇的话 任何不是亲身实践中求得的知识,都不是属于你的. 任何求得的知识不去时常温习运用,也不是属于你的. 记录由来 在做个上拉广告功能中遇到了一个"理所当然"觉得对的用法,慢慢才排查出是获取元素高度那里出了问题,这个问题记忆在书上或视频中看到过,许久没用,用的时候就想当然了.遂决定深入剖析用法,增加记忆,记录发表出来,也能给各位前端同行.求学者增加印象. 出错之处 秉承结构.样式.行为分离的宗旨,每次不管大小案例都是分开写html.css.js.这也算抛砖引出了我犯错的玉. 原css