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 相关文章推荐
jquery 插件 任意位置浮动固定层
Dec 25 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
js实现非常简单的焦点图切换特效实例
May 07 Javascript
javascript创建对象、对象继承的实用方式详解
Mar 08 Javascript
js删除局部变量的实现方法
Jun 25 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
Nov 20 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
May 14 Javascript
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
Vue 路由切换时页面内容没有重新加载的解决方法
Sep 01 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
Nov 20 Javascript
在vue中实现echarts随窗体变化
Jul 27 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 动态执行带有参数的类方法
2009/04/10 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
PHP调用C#开发的dll类库方法
2014/07/28 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
《匆匆》教学反思
2014/02/22 职场文书
房地产项目建议书
2014/03/12 职场文书
写得不错的求职信范文
2014/07/11 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
音乐会主持人开场白
2015/05/28 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电