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 相关文章推荐
DWR Ext 加载数据
Mar 22 Javascript
ext jquery 简单比较
Apr 07 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
Aug 07 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
jquery-tips悬浮提示插件分享
Jul 31 Javascript
JS实现关闭当前页而不弹出提示框的方法
Jun 22 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Dec 15 Javascript
详解vue-router2.0动态路由获取参数
Jun 14 Javascript
Bootstrap栅格系统的使用详解
Oct 30 Javascript
详解JavaScript的变量
Apr 04 Javascript
JavaScript中的惰性载入函数及优势
Feb 18 Javascript
JavaScript运行机制实例分析
Apr 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 curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
2016/12/13 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
Python之os操作方法(详解)
2017/06/15 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
爱游人:Travelliker
2017/09/05 全球购物
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
C面试题
2015/10/08 面试题
党员承诺书范文
2014/05/19 职场文书
银行进社区活动总结
2014/07/07 职场文书
2016公司年会通知范文
2015/04/25 职场文书
刑事申诉状范文
2015/05/20 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书