JS JQuery添加、替换、删除元素class属性

article/2025/11/7 16:57:38

1、先声明一个div和两个class样式,用来测试:

<html><head><meta charset="utf-8"><title></title><script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script><style>.back{background: red;}.col{color: aqua;}</style></head><body><div id="div1">我是div</div></body>
</html>

一、使用JQuery操作元素属性:

下面是获取或设置元素的DOM属性的方法,我只挑出一些和操作class属性相关的写一些小demo,其余的自己直接看教程就行了:https://www.w3school.com.cn/jquery/jquery_ref_attributes.asp

方法描述
addClass()向匹配的元素添加指定的类名。
attr()设置或返回匹配元素的属性和值。
hasClass()检查匹配的元素是否拥有指定的类。
html()设置或返回匹配的元素集合中的 HTML 内容。
removeAttr()从所有匹配的元素中移除指定的属性。
removeClass()从所有匹配的元素中删除全部或者指定的类。
toggleClass()从匹配的元素中添加或删除一个类。
val()设置或返回匹配元素的值。

1、首先使用attr()和prop()方法修改元素的class属性:

1)单独使用attr():

<script>window.onload=function(){$("#div1").attr("class","col");}
</script>

效果:
在这里插入图片描述
2)单独使用prop():

<script>window.onload=function(){$("#div1").prop("class","back");}
</script>

效果:
在这里插入图片描述
3)同时使用attr()和prop():

<script>window.onload=function(){$("#div1").prop("class","back");}
</script>

效果:
在这里插入图片描述
说明:通过上面的效果可以看出,通过attr()和prop()方法都可以为元素添加class属性,但是attr()和prop()是为元素添加新的class属性的同时,将原来的class属性全部清空(也就是覆盖之前的属性)。

2、addClass():

<script>window.onload=function(){$("#div1").attr("class","col");$("#div1").addClass("back");}
</script>

效果:
在这里插入图片描述
说明:addclass()可以为元素添加class属性,并且元素本身的class属性不会受到影响。

3、hasClass():

<script>window.onload=function(){$("#div1").attr("class","col");console.log($("#div1").hasClass("col"));}
</script>

效果:
在这里插入图片描述
说明:判断某元素是否有某个class。

4、removeClass():

<script>window.onload=function(){$("#div1").attr("class","col");$("#div1").removeClass("col");}
</script>

效果:
在这里插入图片描述
说明:将元素的某个class属性移除。

5、toggleClass():

这个我就不测试了,就是如果元素中有这个class属性,那么就将class删除,如果没有该class属性,则将这个class添加。

二、使用JavaScript对元素的class属性进行操作:

1、添加class属性值:

window.onload=function(){document.getElementById('div1').className='col';document.getElementById('div1').className='back';
}

说明:上面这种方式和直接使用attr()和prop()一样,虽然会为元素添加一个class属性,但是会将之前所有的class属性覆盖掉。

效果:
在这里插入图片描述
2、添加class属性值:

window.onload=function(){document.getElementById('div1').className='col';document.getElementById('div1').className +=' back';	//属性值back前有一个空格
}

说明:如果不想将之前的class属性值覆盖掉,那么将上面的代码进行简单的修改即可。(注意:+= 后面需要留一个空格

效果:
在这里插入图片描述
3、添加class属性值:

window.onload=function(){document.getElementById('div1').className='col';document.getElementById('div1').classList.add('back');	//此处没有空格
}

说明:这种方法也是比较好用的,直接为元素添加一个class属性值,之前的不会覆盖。(注意:这里属性值后面没有空格

效果:
在这里插入图片描述
4、删除class属性值:

window.onload=function(){document.getElementById('div1').className='col';document.getElementById('div1').className +=' back';document.getElementById('div1').classList.remove("col");
}

说明:将某元素的很多class属性值中将其中一个属性值删除。

效果:
在这里插入图片描述
三、使用getAttribute()和setAttribute()方法来操作class属性:

1、可以使用getAttribute()来获取某元素的class属性。

<script>window.onload=function(){document.getElementById('div1').classList.add('back');console.log(document.getElementById('div1').getAttribute("class"));}
</script>

效果:正常打印输出back
在这里插入图片描述
2、添加class属性:

<script>window.onload=function(){document.getElementById('div1').classList.add("back");var classVal = document.getElementById('div1').getAttribute("class");classVal = classVal.concat(" col");document.getElementById('div1').setAttribute("class",classVal);}
</script>

说明:首先使用getAttribute()方法获取到class属性值(这里要保证之前就有一个class属性,如果没有的话获取到的值会是null,使用null调用concat方法会出现错误),然后使用concat()方法进行拼接,然后再使用setAttribute()方法,将拼接好的属性值赋值到元素class属性上。

效果:
在这里插入图片描述
3、替换class属性:

在之前的css的基础上再添加一个css:(修改字体颜色为黄色)

.yellow{color: yellow;
}
<script>window.onload=function(){document.getElementById('div1').classList.add("yellow");document.getElementById('div1').classList.add("back");var classVal = document.getElementById('div1').getAttribute("class");console.log(classVal);classVal = classVal.replace("yellow","col");console.log(classVal);document.getElementById('div1').setAttribute("class",classVal);}
</script>

说明:我们首先为元素添加两个css属性,一个红色的背景一个黄色的字体,然后使用getAttribute()获取到该元素的class属性值,再使用replace将其中某一个属性进行替换(我们这里将yellow替换为col),最后将替换之后的class属性值使用setAttribute()赋值给元素。

下面是控制台打印的文字:
在这里插入图片描述
效果:(已经将黄色字体替换掉了)
在这里插入图片描述
4、删除class属性值:

<script>window.onload=function(){document.getElementById('div1').classList.add("yellow");document.getElementById('div1').classList.add("back");var classVal = document.getElementById('div1').getAttribute("class");console.log(classVal);classVal = classVal.replace("yellow","");console.log(classVal);document.getElementById('div1').setAttribute("class",classVal);}
</script>

说明:删除和替换实现原理相同,只不过是将要替换的属性值设置为空字符串""即可实现删除。

控制台打印:
在这里插入图片描述
效果:将黄色字体效果删除了
在这里插入图片描述
你要去做一个大人,不要回头,不要难过。

“其实生活在井里也挺好的,就是偶尔,会觉得世界很空,生活很咸。”


http://chatgpt.dhexx.cn/article/Cg1ckUWv.shtml

相关文章

jquery动态添加和删除class属性

在用jquery时&#xff0c;遇到一个问题&#xff0c;就是如何动态得添加和删除class的属性&#xff0c;下面是我的解决代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio…

用jQuery的.addClass()方法给元素加class

Target Elements by Class Using jQuery 你看到我们是怎么给所有的按钮做弹回效果了吗&#xff1f;我们用 $("button")来选中按钮&#xff0c;然后用.addClass("animated bounce")给按钮加CSS class。 你只需要用jQuery的.addClass()方法&#xff0c;就可…

js 关于动态添加class样式的学习

如果&#xff0c;我这里有一个需求。如下的页面代码 <body> <input type"button" value"红" id"btn1"/> <p id"p1"> 2016年圣诞前的一个星期天下午&#xff0c;我推开窗&#xff0c;加州明媚的阳光洒在街道上&…

jQuery通过id属性来获取元素,通过.addClass()方法来添加class.

Target Elements by ID Using jQuery 你还可以根据id属性来获取元素 首先用$("#target3")来选择id为target3的button元素。 注意&#xff0c;就像CSS一样&#xff0c;在id的名字前加上 #。 然后使用jQuery的.addClass()方法来添加 animated和fadeOutclass. 例如…

js给元素添加class样式

图中&#xff0c;左侧和右侧都需要添加不同的class类样式 结构&#xff1a; <div class"left"><div class"img_bg leftOne" click"clickLeft(企业文化)">企业文化</div><div class"img_bg leftTwo" click"…

jq获取和设置标签的css样式、jq给标签增加或移除class属性

1、jQuery获取和设置标签的css样式 jQuery既可以直接获取标签的css样式&#xff0c;也可以设置样式&#xff0c;包括行内、内部、外部样式&#xff1b;思路&#xff1a;先要选取这个标签&#xff0c;然后再获取或者设置样式&#xff1b;获取css属性&#xff1a; console.log(…

JavaScript给元素添加class属性

注意&#xff1a;element.classList.remove()、element.classList.add() — ie9及以下不兼容 // 移除div的class属性 obj.classList.remove(active);// 添加class属性值 // 方式一 obj.className new active;// 方式二 // obj.className new active;// 方式三&#xff1a;属…

jq中的addClass()方法与样式冲突

添加类样式方法 addClass()&#xff1a;向被选元素添加指定的类名 注意&#xff1a;该方法仅仅只是在原有基础上添加属性&#xff0c;不会覆盖已存在的 class 属性 提示&#xff1a;如需添加多个类&#xff0c;使用空格分隔类名 一、添加一个class属性 <style>.div {wid…

Dubbo原理简单分析

1.Dubbo原理分析 alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。 这个框架/工具/产品在实现的时候,都考虑到了容灾,扩展,负载均衡,于是出现一个配置中心(ConfigServer)的东西…

dubbo解析-介绍服务端和客户端启动和服务调用步骤

本文基于dubbo 2.7.5版本代码 前面的文章介绍了很多dubbo的各个组件&#xff0c;本文将对通过介绍启动和服务调用过程梳理一下这些组件&#xff0c;也让大家对dubbo的全局有一个了解。 文章目录 一、服务端启动二、客户端启动三、服务调用 一、服务端启动 1、spring启动调用后…

面试杀手锏之Dubbo服务调用过程

点赞再看&#xff0c;养成习惯&#xff0c;微信搜一搜【三太子敖丙】关注这个喜欢写情怀的程序员。 本文 GitHub https://github.com/JavaFamily 已收录&#xff0c;有一线大厂面试完整考点、资料以及我的系列文章。 前言 前面我已经带着大家过了服务暴露和服务引入两个流程了…

dubbo的服务调用原理

一、前言 在我们使用dubbo进行远程服务消费时&#xff0c;可以通过Reference注解或dubbo:reference来配置引用的接口&#xff0c;最终会生成远程服务的代理类&#xff0c;转化成ReferenceBean&#xff0c;这样我们就可以像调用本地接口方法一样使用远程服务提供的功能&#xf…

18. Dubbo原理解析-服务调用

服务消费方发起请求 当服务的消费方引用了某远程服务&#xff0c;服务的应用方在spring的配置实例如下&#xff1a; <dubbo:referenceid"demoService"interface"com.alibaba.dubbo.demo.DemoServ ice" /> demoService实例其实是代理工厂生产的代理…

Dubbo 原理和机制详解

Dubbo 是一款Java RPC框架&#xff0c;致力于提供高性能的 RPC 远程服务调用方案。作为主流的微服务框架之一&#xff0c;Dubbo 为开发人员带来了非常多的便利。 1. Dubbo核心功能 Dubbo主要提供了3大核心功能&#xff1a;面向接口的远程方法调用&#xff0c;智能容错和负载均…

从源码全面解析 dubbo 服务端服务调用的来龙去脉

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小黄&#xff0c;独角兽企业的Java开发工程师&#xff0c;CSDN博客专家&#xff0c;阿里云专家博主&#x1f4d5;系列专栏&#xff1a;Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、JUC源码…

Dubbo原理和面试问题

今天来说一说dubbo的原理&#xff0c;首先我们要知道dubbo到底是什么&#xff0c;都能提供些什么服务&#xff1f; 一、dubbo是什么&#xff1f; dubbo是⼀个分布式服务框架&#xff0c;提供⾼性能和透明化的RPC远程服务调⽤⽅案&#xff0c;以及SOA服务治理方案。说白了其实…

springboot启动dubbo客户端连接服务端过程

前言 如果我问你,dubbo客户端启动的时候是如何连接服务器端的&#xff1f;这个过程比较复杂&#xff0c;今天我们一起学习起来~ 本文分以下几个部分 1、springboot启动dubbo需要配置 2、初始化Reference过程 3、小结 一、项目应用 1、引入jar包 <dependency><g…

dubbo实现原理机制

Dubbo的总体架构如图所示&#xff1a; 框架分层架构中&#xff0c;各个层次的设计要点&#xff1a; 服务接口层&#xff08;Service&#xff09;&#xff1a;该层是与实际业务逻辑相关的&#xff0c;根据服务提供方和服务消费方的业务设计对应的接口和实现。 配置层&#xff0…

Dubbo源码分析(三):Dubbo之服务端(Service)

如上图所示的Dubbo的暴露服务的过程&#xff0c;不难看出它也和消费者端很像&#xff0c;也需要一个像reference的对象来维护service关联的所有对象及其属性&#xff0c;这里的reference就是provider。由于ServiceBean实现了 &#xfeff;&#xfeff; InitializingBean接口&am…

Dubbo——初识RPC、Dubbo框架、使用直连方式实现Dubbo

文章目录&#xff1a; 1.RPC & 软件架构 1.1 单一应用架构 1.2 分布式微服务架构 1.3 RPC 2.Dubbo概述 2.1基本架构 2.2 dubbo支持的协议 3.直连方式实现dubbo 3.1 服务提供者的创建 3.2 服务消费者的创建 3.3 启动测试&#xff01;&#xff01;&#xff01; 1.…