属性与样式
.attr()与.removeAttr()
jQuery中用attr()方法来获取和设置元素属性.
- attr(属性名):获取属性的值
- attr(属性名,属性值):设置属性的值
- attr(属性名,函数值):设置属性的函数值
- attr(attributes):给指定元素设置多个属性值。例如
.removeAttr( attributeName ) : 为匹配的元素集合中的每个元素中移除一个属性(attribute)
Attribute和Property翻译为“特性”和“属性”。Attribute就是dom节点自带的属性,例如:html中常用的id、class、title、align等。获取Attribute就需要用attr,获取Property就需要用prop。
html()及.text()
.html()方法
获取集合中第一个匹配元素的HTML内容 或 设置每一个匹配元素的html内容。
- .html() 不传入值,就是获取集合中第一个匹配元素的HTML内容。
- .html( htmlString ) 设置每一个匹配元素的html内容。
.html()方法内部使用的是DOM的innerHTML属性来处理的,这个操作是针对整个HTML内容(不仅仅只是文本内容)
.text()
得到匹配元素集合中每个元素的文本内容结合,.text()结果返回一个字符串,包含所有匹配元素的合并文本。
.html处理的是元素内容,.text处理的是文本内容。
.val()
.val()方法主要是用于处理表单元素的值,比如 input, select 和 textarea。
- val()无参数,获取匹配的元素集合中第一个元素当前值。
- val(value)设置匹配的元素集合中每个元素的值。
- 通过.val()处理select元素, 当没有选择项被选中,它返回null
- 如果select元素有multiple(多选)属性,并且至少一个选择项被选中, .val()方法返回一个数组,这个数组包含每个选中选择项的值
.html(),.text()和.val()的差异
- .html(),.text(),.val()三种方法都是用来读取选定元素的内容;只不过.html()是用来读取元素的html内容(包括html标签),.text()用来读取元素的纯文本内容,包括其后代元素,.val()是用来读取表单元素的"value"值。其中.html()和.text()方法不能使用在表单元素上,而.val()只能使用在表单元素上;另外.html()方法使用在多个元素上时,只读取第一个元素;.val()方法和.html()相同,如果其应用在多个元素上时,只能读取第一个表单元素的"value"值,但是.text()和他们不一样,如果.text()应用在多个元素上时,将会读取所有选中元素的文本内容。
- .html(htmlString),.text(textString)和.val(value)三种方法都是用来替换选中元素的内容,如果三个方法同时运用在多个元素上时,那么将会替换所有选中元素的内容。
- .html(),.text(),.val()都可以使用回调函数的返回值来动态的改变多个元素的内容。
增加样式.addClass()
通过动态改变类名(class),可以让其修改元素呈现出不同的效果。
<p class="orgClass">
$("p").addClass("newClass")
等同于:
<p class="orgClass newClass">
那么p元素的class实际上是 class="orgClass newClass"样式只会在原本的类上继续增加,通过空格分隔.
样式操作.css()
动态的修改style属性我们只要使用css()方法就可以实现了。
$('.aaron').css(
'background','yellow'
)
等同于
$('.aaron').css({
'background':'yellow'
})
.css()与.addClass()设置样式的区别
- .addClass()方法是通过增加class名的方式,那么这个样式是在外部文件或者内部样式中先定义好的,等到需要的时候在附加到元素上
- 通过.css()方法处理的是内联样式,直接通过元素的style属性附加到元素上的
- .addClass与.css方法各有利弊,一般是静态的结构,都确定了布局的规则,可以用addClass的方法,增加统一的类规则
- 如果是动态的HTML结构,在不确定规则,或者经常变化的情况下,一般多考虑.css()方式.
作者:六月的余晖
出处:http://www.cnblogs.com/zhaozihan/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。