jQuery修改class属性和CSS样式整理


Posted in Javascript onJanuary 30, 2015

class属性修改

类属性即class属性,规定类名.

用类选择器规定样式的时候,需要为元素指定类名,即class属性的值.

注意每个HTML元素只有一个class属性.但是class属性的值可以是多个名称,即可能包含一个词的列表,中间用空格分隔.

具体使用方法见:http://www.w3school.com.cn/css/css_selector_class.asp
 

用jQuery进行类名修改既可以用attr()方法修改”class”属性,也可以用addClass(), removeClass(), toggleClass()等方法来完成.

addClass()

API: http://api.jquery.com/addClass/

addClass()方法向匹配的元素增加指定的类名(一个或多个).

注意对于元素来说,class属性可以有多个值.该方法不会移除已经存在的值,而是在原有的基础上追加一个或多个class属性.

用attr()方法设置class属性,是一个覆盖的过程;而addClass()则是一个追加的过程.

class之间最终是用空格来隔开的.

如果需要添加多个类,用空格分隔类名.

从1.4开始,这个方法的参数也可以传入一个function.

removeClass()

API: http://api.jquery.com/removeClass/

removeClass()方法从被选元素移除一个或多个类.如需移除若干类,用空格来分隔类名.

如果没有传参数,该方法将会移除被选元素的所有类.

toggleClass()

API: http://api.jquery.com/toggleClass/

toggleClass()方法对被选元素的一个或多个类进行切换(设置或移除).

该方法检查每个元素中的指定类,如果存在则删除,如果不存在则添加.

通过添加参数,可以设置只进行删除或者只进行添加操作.

格式:$(selector).toggleClass(class,switch)

switch值为true时,只添加;为false时,只删除.

hasClass()

API: http://api.jquery.com/hasClass/

hasClass()方法检查被选元素是否包含指定的class.

还可以用is()方法实现同样的功能,方法参数传入一个选择器字符串,比如”.className”.

CSS样式修改

jQuery中还有一些方法直接返回或者设置元素的CSS属性.

css()

API: http://api.jquery.com/css/

读操作: 获取匹配元素集合中第一个元素的指定样式值(一个或多个).

注:读取多个样式值的操作是在jQuery v1.9才加入的.

写操作: 为匹配元素集合中的每一个元素设置一个或多个CSS属性的值.

传入的参数可以是单个的键值对,也可以是PlainObject指定的多个值,还可以是function.(v1.4).
 

jQuery会处理各个浏览器中不太相同的一些具体情况,比如W3C的cssFloat在IE中是styleFloat,在jQuery中,你可以使用float,然后jQuery会帮你把它翻译成每个浏览器中应该有的正确名称.

还有,jQuery会合理解读CSS和DOM格式的多词属性,比如.css(“background-color”)和.css(“backgroundColor”),它都是可以处理的.

height()和width()

API: http://api.jquery.com/height/和http://api.jquery.com/width/

高度和宽度属性.这个宽高值不包括padding,border和margin.除非box-sizing属性被使用了.

注意写操作的时候set的是content的宽高,不包括box-sizing的部分.
 

读操作仍然是返回集合第一个元素的属性值.

.css(“width”)和.width()的区别是:前者返回带单位的值,比如400px;后者返回不带单位的像素数值,即400.

所以如果值需要被用于某种计算,.height()和.width()是被推荐使用的.

读取得到的数值不一定是整型,并且如果用户缩放了页面,其值可能是不正确的,因为浏览器没有暴露这种情况的API.

还有一种不准确的情况,当这个元素的父元素隐藏起来时,该元素的尺寸可能读不准.
 

写操作支持的value类型是字符串或者数字.

如果是数字,jQuery默认是px为单位.

如果是字符串,除了可以数字加单位之外,任何合理的CSS measurement都可以用,比如100%,50%,或者auto.

position()

API: http://api.jquery.com/position/

返回第一个匹配元素相对于父元素(offset parent)的位置.

只有读操作.

offset()

API: http://api.jquery.com/offset/

返回第一个匹配元素的坐标,或者设定每一个匹配元素的坐标,这个坐标是相对于document的.

offsetParent()

API:http://api.jquery.com/offsetParent/

返回父类,只有读操作.

scrollLeft()和scrollTop()

API: http://api.jquery.com/scrollLeft/和http://api.jquery.com/scrollTop/

Javascript 相关文章推荐
Javascript 同时提交多个Web表单的方法
Feb 19 Javascript
一起来写段JS drag拖动代码
Dec 09 Javascript
jquery 缓存问题的几个解决方法
Nov 11 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
一个JavaScript函数把URL参数解析成Json对象
Sep 24 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
Jul 26 Javascript
JavaScript里 ==与===区别详解
Aug 16 Javascript
Reactjs实现通用分页组件的实例代码
Jan 19 Javascript
详解VueJs异步动态加载块
Mar 09 Javascript
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
JS加密插件CryptoJS实现的Base64加密示例
Aug 16 Javascript
vue-cli在 history模式下的配置详解
Nov 26 Javascript
javascript中AJAX用法实例分析
Jan 30 #Javascript
JavaScript基础函数整理汇总
Jan 30 #Javascript
JS解析XML实例分析
Jan 30 #Javascript
javascript中键盘事件用法实例分析
Jan 30 #Javascript
javascript中cookie对象用法实例分析
Jan 30 #Javascript
javascript事件模型实例分析
Jan 30 #Javascript
JS是按值传递还是按引用传递
Jan 30 #Javascript
You might like
星际争霸任务指南——虫族
2020/03/04 星际争霸
php设计模式 Composite (组合模式)
2011/06/26 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
最棒的Angular2表格控件
2016/08/10 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
React实现todolist功能
2020/12/28 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
Python中max函数用法实例分析
2015/07/17 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
介绍一下except的用法和作用
2015/01/22 面试题
中专生自我鉴定
2013/12/17 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
初中英语教学反思
2014/01/25 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
经营管理策划方案
2014/05/22 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
学校安全管理制度
2015/08/06 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang