1、修改Text和HTML
jQuery对象的text()
和html()
方法分别获取节点的文本和原始HTML文本。
无参数调用text()
是获取文本,传入参数就变成设置文本,HTML也是类似操作。
一个jQuery对象可以包含0个或任意个DOM对象,它的方法实际上会作用在对应的每个DOM节点上。
2、修改CSS
jQuery对象有“批量操作”的特点,这用于修改CSS实在是太方便了。调用jQuery对象的css('name', 'value')
方法。
jQuery对象的所有方法都返回一个jQuery对象(可能是新的也可能是自身),这样我们可以进行链式调用,非常方便。
3、显示和隐藏DOM
要隐藏一个DOM,我们可以设置CSS的display
属性为none
,利用css()
方法就可以实现。不过,要显示这个DOM就需要恢复原有的display
属性,这就得先记下来原有的display
属性到底是block
还是inline
还是别的值。
考虑到显示和隐藏DOM元素使用非常普遍,jQuery直接提供show()
和hide()
方法。
隐藏DOM节点并未改变DOM树的结构,它只影响DOM节点的显示。这和删除DOM节点是不同的。
4、获取DOM信息
利用jQuery对象的若干方法,我们直接可以获取DOM的高宽等信息,而无需针对不同浏览器编写特定代码:
// 浏览器可视窗口大小:
$(window).width(); // 800
$(window).height(); // 600
// HTML文档大小:
$(document).width(); // 800
$(document).height(); // 3500
// 某个div的大小:
var div = $('#test-div');
div.width(); // 600
div.height(); // 300
div.width(400); // 设置CSS属性 width: 400px,是否生效要看CSS是否有效
div.height('200px'); // 设置CSS属性 height: 200px,是否生效要看CSS是否有效
attr()
和removeAttr()
方法用于操作DOM节点的属性:
// <div id="test-div" name="Test" start="1">...</div>
var div = $('#test-div');
div.attr('data'); // undefined, 属性不存在
div.attr('name'); // 'Test'
div.attr('name', 'Hello'); // div的name属性变为'Hello'
div.removeAttr('name'); // 删除name属性
div.attr('name'); // undefined
prop()
方法和attr()
类似,但是HTML5规定有一种属性在DOM节点中可以没有值,只有出现与不出现两种,例如:checked和selected。
attr()
和prop()
对于属性checked
处理有所不同:
var radio = $('#test-radio');
radio.attr('checked'); // 'checked'
radio.prop('checked'); // true
prop()
返回值更合理一些。不过,用is()
方法判断更好:
var radio = $('#test-radio');
radio.is(':checked'); // true
5、操作表单
对于表单元素,jQuery对象统一提供val()
方法获取和设置对应的value
属性,一个val()
就统一了各种输入框的取值和赋值的问题。