jquery 如何动态添加、删除class样式方法介绍


Posted in Javascript onNovember 07, 2012

取与设置样式 获取class和设置class都可以使用attr()方法来完成。例如使用attr()方法来获取p元素的class,JQuery代码如下:

var p_class = $("p").attr("class"); //获取p元素的class 
[html] 
使用attr()方法来设置p元素的class,JQuery代码如下: 
[code] 
1 $("p").attr("'class", "high"); //设置p元素的class为 "high"

大多数情况下,它是将原来的class替换为新的class,而不是在原来的基础上追加新的class。
追加样式 什么是追加class呢?假如p元素原本的class为myClass,那么追加一个名叫high的class后,class属性变为 “myClass high”,即myClass和high两种样式的叠加。JQuery提供了专门的addClass()方法来追加样式。为了使例子更容易理解,首先在 style标签里添加另一组样式:
1 .high{ color:red; } 
2 .another{ font-style:italic; color:blue; } 
后在网页中添加一个“追加class类”的按钮,按钮的事件代码如下: 
1 $("#btn_3").click(function(){ 
2 $("#nm_p").addClass("another"); // 追加样式 
3 });

后当单击“追加class类”按钮时,p元素样式就会变为斜体,而先前的红色字体也会变为蓝色。此时p元素同时拥有两个class值,即"high"和"another"。在CSS中有以下两条规定。
1.如果给一个元素添加了多个class值,那么就相当于合并了它们的样式。 2.如果有不同的class设定了同一样式属性,则后者覆盖前者。 在上例中,相当于给p元素添加了如下样式:
1 color : red; /* 字体颜色设置红色*/ 
2 font-style:italic; 
3 color:blue;

以上的样式中,存在两个“color”属性,而后面的“color”属性会覆盖前面的“color”属性,因此最终的“color”属性的值为“blue”,而不是“red”。
移除样式 如果用户单击某个按钮时,要删除class的某个值,那么可以使用与addClass()方法相反的removeClass()方法来完成,它的 作用是从匹配的元素中删除全部或者指定的class。例如可以使用如下的JQuery代码来删除p元素中值为“high”的class:
1 $("p").removeClass("high"); //移除p元素中值为"high"的class 
果要把p元素的两个class都删除,就要使用两次removeClass()方法,代码如下: 
1 $("p").removeClass("high").removeClass("another"); 
Query提供了更简单的方法。可以以空格的方式删除多个class名,代码如下: 
1 $("p").removeClass("high another"); 
外,还可以利用removeClass()方法的一个特性来完成同样的效果。当它不带参数时,就会将class的值全部删除,JQuery代码如下: 
1 $("p").removeClass(); //移除p元素的所有class 
换样式 JQuery中有一个方法toggle(),JQuery代码如下: 
1 toggleBtn.toggle(function(){ 
2 //元素显示 代码③ 
3 }, function(){ 
4 //元素隐藏 代码④ 
5 })

oggle()方法此处的作用是交替执行代码③和代码④两个函数,如果元素原来是显示的,则隐藏它:如果元素原来是隐藏的,则显示它。此时,toggle()方法主要是控制行为上的重复切换。
另外JQuery还提供了一个toggleClass()方法控制样式上的重复切换。如果类名存在则删除它,如果类名不存在则添加它。例如对p元素进行toggleClass()方法操作。
1 $("p").toggleClass("another"); //重复切换类名“another”

不断单击“切换样式”按钮时,p元素的class的值就会在“myClass”和“myClass another”之间重复切换。
判断是否含有某个样式 hasClass()可以用来判断元素中是甭含有某个class,如果有,则返回true,否则返回false。例如可以使用下面的代码来判断p元素中是否含有“another”的class:
1 $("p").hasClass("another");

个方法是为了增强代码可读性面产生的。在JQuery内部实际上是调用了is()方法来完成这个功能的.该方法等价于如下代码:
view sourceprint? 1 $("p").is(".another"); //is("."+class);
Javascript 相关文章推荐
基于逻辑运算的简单权限系统(实现) JS 版
Mar 24 Javascript
js右键菜单效果代码
Jul 21 Javascript
JQUERY操作JSON实例代码
Feb 09 Javascript
js判断背景图片是否加载成功使用img的width实现
May 29 Javascript
js获取URL的参数的方法(getQueryString)示例
Sep 29 Javascript
jquery按回车提交数据的代码示例
Nov 05 Javascript
javascript用正则表达式过滤空格的实现代码
Jun 14 Javascript
vue中echarts3.0自适应的方法
Feb 26 Javascript
ES6的Fetch异步请求的实现方法
Dec 07 Javascript
一些你可能不熟悉的JS知识点总结
Mar 15 Javascript
优化Vue项目编译文件大小的方法步骤
May 27 Javascript
JavaScript中reduce()的用法
May 11 Javascript
探索Emberjs制作一个简单的Todo应用
Nov 07 #Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
Nov 07 #Javascript
seajs1.3.0源码解析之module依赖有序加载
Nov 07 #Javascript
Javascript引用指针使用介绍
Nov 07 #Javascript
JavaScript在多浏览器下for循环的使用方法
Nov 07 #Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 #Javascript
JS正则中的RegExp对象对象
Nov 07 #Javascript
You might like
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
python合并文本文件示例
2014/02/07 Python
开源Web应用框架Django图文教程
2017/03/09 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
致跳远运动员广播稿
2014/02/11 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
家长给老师的感谢信
2015/01/20 职场文书
大学生个人学年总结
2015/02/15 职场文书
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫