jq样式方法总结

.html()方法

获取集合中第一个匹配元素的HTML内容 或 设置每一个匹配元素的html内容,具体有3种用法:

  1. .html() 不传入值,就是获取集合中第一个匹配元素的HTML内容
  2. .html( htmlString )  设置每一个匹配元素的html内容

3..html( function(index, oldhtml) ) 用来返回设置HTML内容的一个函数

.text()方法

得到匹配元素集合中每个元素的文本内容结合,包括他们的后代,或设置匹配元素集合中每个元素的文本内容为指定的文本内容。,具体有3种用法:

    1. .text() 得到匹配元素集合中每个元素的合并文本,包括他们的后代
    2. .text( textString ) 用于设置匹配元素内容的文本
    3. .text( function(index, text) ) 用来返回设置文本内容的一个函数

attr()有4个表达式

  1. attr(传入属性名):获取属性的值
  2. attr(属性名, 属性值):设置属性的值
  3. attr(属性名,函数值):设置属性的函数值
  4. attr(attributes):给指定元素设置多个属性值,即:{属性名一: “属性值一” , 属性名二: “属性值二” , … … }

removeAttr()删除方法

.removeAttr( attributeName ) : 为匹配的元素集合中的每个元素中移除一个属性(attribute)

.val()方法

  1. .val()无参数,获取匹配的元素集合中第一个元素的当前值
  2. .val( value ),设置匹配的元素集合中每个元素的值
  3. .val( function ) ,一个用来返回设置值的函数

 注意事项:

  1. 通过.val()处理select元素, 当没有选择项被选中,它返回null
  2. .val()方法多用来设置表单的字段的值
  3. 如果select元素有multiple(多选)属性,并且至少一个选择项被选中, .val()方法返回一个数组,这个数组包含每个选中选择项的值

.addClass( className )方法

  1. .addClass( className ) : 为每个匹配元素所要增加的一个或多个样式名
  2. .addClass( function(index, currentClass) ) : 这个函数返回一个或更多用空格隔开的要增加的样式名

.toggleClass( )方法:

在匹配的元素集合中的每个元素上添加或删除一个或多个样式类,取决于这个样式类是否存在或值切换属性。即:如果存在(不存在)就删除(添加)一个类

  1. .toggleClass( className ):在匹配的元素集合中的每个元素上用来切换的一个或多个(用空格隔开)样式类名
  2. .toggleClass( className, switch ):一个布尔值,用于判断样式是否应该被添加或移除
  3. .toggleClass( [switch ] ):一个用来判断样式类添加还是移除的 布尔值
  4. .toggleClass( function(index, class, switch) [, switch ] ):用来返回在匹配的元素集合中的每个元素上用来切换的样式类名的一个函数。接收元素的索引位置和元素旧的样式类作为参数

.css() 方法:

获取元素样式属性的计算值或者设置元素的CSS属性

获取:

  1. .css( propertyName ) :获取匹配元素集合中的第一个元素的样式属性的计算值
  2. .css( propertyNames ):传递一组数组,返回一个对象结果

设置:

  1. .css(propertyName, value ):设置CSS
  2. .css( propertyName, function ):可以传入一个回调函数,返回取到对应的值进行处理
  3. .css( properties ):可以传一个对象,同时设置多个样式

注意事项:

  1. 浏览器属性获取方式不同,在获取某些值的时候都jQuery采用统一的处理,比如颜色采用RBG,尺寸采用px
  2. .css()方法支持驼峰写法与大小写混搭的写法,内部做了容错的处理
  3. 当一个数只被作为值(value)的时候, jQuery会将其转换为一个字符串,并添在字符串的结尾处添加px,例如 .css("width",50}) 与 .css("width","50px"})一样

css()和addClass()方法的区别:

样式的优先级:

css的样式是有优先级的,当外部样式、内部样式和内联样式同一样式规则同时应用于同一个元素的时候,优先级如下

外部样式 < 内部样式 < 内联样式
  1. .addClass()方法是通过增加class名的方式,那么这个样式是在外部文件或者内部样式中先定义好的,等到需要的时候在附加到元素上
  2. 通过.css()方法处理的是内联样式,直接通过元素的style属性附加到元素上的
通过.css方法设置的样式属性优先级要高于.addClass方法

总结:

.addClass与.css方法各有利弊,一般是静态的结构,都确定了布局的规则,可以用addClass的方法,增加统一的类规则
如果是动态的HTML结构,在不确定规则,或者经常变化的情况下,一般多考虑.css()方式

另外:

jQuery提供的存储接口

jQuery.data( element, key, value )   //静态接口,存数据
jQuery.data( element, key )  //静态接口,取数据
.data( key, value ) //实例接口,存数据
.data( key ) //实例接口,存数据
时间: 2024-08-02 22:16:52

jq样式方法总结的相关文章

jq筛选方法

jq筛选方法(参照手册) 过滤: 1) eq(index|-index):获取第N个元素 负值表示从末尾开始匹配 <!-- 获取匹配的第二个元素 --> <p> This is just a test.</p> <p> So is this</p> <script> $("p").eq(1) $("p").eq(-2) // <p> This is just a test.</

js获取元素样式方法

? 1 2 3 4 5 6 7 8 function getStyle(ojb,attr){       if(obj.currentStyle){             return obj.currentStyle[attr];       }         else{            return getComputedStyle(obj,false)[attr];        } } js获取元素样式方法,布布扣,bubuko.com

js函数arguments与获取css样式方法

函数传参,当参数的个数不定时,可以使用arguments arguments.length=实参个数 获得css样式方法: getComputedStyle()方法---->得到的是计算机计算后的样式(多次修改之后的最终样式),IE 6 7 8下兼容 style.属性   ----->操作的是元素内嵌样式,得到是内嵌样式的属性 currentStyle ----->标准浏览器不兼容 注意: 不能获取复合样式.例如 :backgroud:url() color .... 单一样式不要用来做

div标签清除float浮动样式方法

方法一. 这个方法来源于positioniseverything ,通过after伪类实现,完全兼容当前主流浏览器. 1 <style type="text/css"> 2 .clearfix:after { 3 content: "."; 4 display: block; 5 height: 0; 6 clear: both; 7 visibility: hidden; 8 } 9 .clearfix {display: inline-block;}

将普通textarea的样式修改为ckeditor的样式方法有三种

这里前提是加载了<script src="ckeditor/ckeditor.js"></script> 1.将textarea 增加一个样式class="ckeditor" <textarea class="ckeditor"></textarea> 2.使用ckeditor提供的类CKEDITOR和它 的替换方法 <textarea id="myck"></

div css隐藏内容样式方法

一.使用css隐藏方法用到CSS样式单词及对应解释 1.使用display:none;来隐藏所有信息(无空白位占据)推荐,CSS display手册查看2.使用overflow:hidden;来隐藏溢出的文字或图片 适用推荐,css overflow手册查看3.使用overflow-y:hidden;和overflow-x:hidden控制滚动条的隐藏与否,css overflow-y手册查看,css手册查看overflow-x 1.css隐藏DIV及内容,完全隐藏内容与布局 解释:使用CSS单

适应含有不同皮肤的网站部分样式方法

昨天上午同组的同事发现项目一个问题 ,由于我们当前项目用的 easyUI 其中有皮肤切换. 部分页面 含有 fieldset 标签,这个标签在皮肤css里没有定义. 当时的标签是这样的: 这样出现问题就是 fieldset 的边线不会随着皮肤变化而变化. 下午一看他还在修改这个问题,我问他得到的原因是:他在一个页面一个页面的找这个标签修改. 项目比较急,这样是肯定不行的.于是我在页面加了一段js代码: 问题解决. 其实这种方法是我为省时间,利用 jQuery 取到页面主色调然后赋值到标签上. 这

用css3选择器给你要的第几个元素添加不同样式方法【转发】

下面我们来了解一下css选择器里面的几个 :only-child p:only-child 选择属于其父元素的唯一子元素的每个 <p> 元素. 3 :nth-child(n) p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素. 3 :nth-last-child(n) p:nth-last-child(2) 同上,从最后一个子元素开始计数. 3 :nth-of-type(n) p:nth-of-type(2) 选择属于其父元素第二个 <p>

jQ load方法在jquery1.8版本中被废弃,用on进行绑定

更新jQuery版本后报错url.indexOf is not a function解决办法 http://www.findme.wang/Blog/detail/id/196.html 最近在使用之前下载的jquery.thinkbox.js,一直报错url.indexOf is not a function,如下: 经分析,报错主要是由调用load函数引起: 1 2 $("").load(function(){ }) 因为在jquery3.2.0中,load函数定义如下: 函数的第