jQuery初级食用指南

267 阅读2分钟

jQuery

参考阮一峰:jQuery使用指南

介绍

jQuery曾是前端开发使用最广泛的库,优点在于jQuery提供了相当便捷且直观的DOM操作。但是由于封装的功能过于庞大,导致想要精通更好的使用jQuery也同样具有一定难度。

下面来介绍一下jQuery的简单使用方法。

获取元素

获取元素是DOM操作中最重要的初始行为,使用jQuery进行最简单的元素选择是使用CSS的选择器:

$(document) //选择整个文档对象

$('#id') // 选择ID为id的元素

$('.class') // 选择class为class的div元素

$('input[name=first]') // 选择name属性等于first的input元素

还有一些jQuery特有的选择方式

$('a:first') //选择网页中第一个a元素

$('tr:odd') //选择表格的奇数行

$('#myForm :input') // 选择表单中的input元素

$('div:visible') //选择可见的div元素

$('div:gt(2)') // 选择所有的div元素,除了前三个

$('div:animated') // 选择当前处于动画状态的div元素

通过jQuery自己封装的丰富的api,还能实现更为精确地元素获取

$('div').has('p'); // 选择包含p元素的div元素

$('div').not('.myClass'); //选择class不等于myClass的div元素

$('div').filter('.myClass'); //选择class等于myClass的div元素

$('div').first(); //选择第1个div元素

$('div').eq(5); //选择第6个div元素

$('div').next('p'); //选择div元素后面的第一个p元素

$('div').parent(); //选择div元素的父元素

$('div').closest('form'); //选择离div最近的那个form父元素

$('div').children(); //选择div的所有子元素

$('div').siblings(); //选择div的同级元素

修改元素及其属性

jQuery对元素或元素的属性的值的操作封装成getter/setter模式,通过对同一个函数进行重载,来实现读取或是修改的功能

以下函数含有参数时是修改元素值,不含参数时是获取元素值

.html() 取出或设置html内容

.text() 取出或设置text内容

.attr() 取出或设置某个属性的值

.width() 取出或设置某个元素的宽度

.height() 取出或设置某个元素的高度

.val() 取出某个表单元素的值

创建、删除、复制元素

创建元素只需要简单地把html代码传入jQuery的构造函数即可:$('<p>Hello</p>');

复制和删除元素:

删除
.remove() 不保留被删除元素
.detach() 保留被删除元素
.empty() 清空选中元素

复制
.clone()

移动元素

jQuery提供成对的四对方法,来实现元素移动。每对方法中的其一是直接移动目标元素,另一是移动其他元素,最终结果都是使目标元素到达想要的位置

以下这一对方法实现的最终效果都是div元素插入p元素的后面

$('div').insertAfter($('p')); // 该方法返回div元素
$('p').after($('div')); // 该方法返回p元素

下面列举出所有的四对方法

.insertAfter()和.after():在现存元素的外部,从后面插入元素

.insertBefore()和.before():在现存元素的外部,从前面插入元素

.appendTo()和.append():在现存元素的内部,从后面插入元素

.prependTo()和.prepend():在现存元素的内部,从前面插入元素

链式操作

链式操作是jQuery最为精髓的设计,以上展示的所有函数均可以以链式操作的形式完成复杂的多步操作

$('div').remove();
$('div').find('h3').eq(2).html('Hello');

jQuery还提供了.end()函数,用来使目前操作的DOM元素返回到上一次获取到的DOM元素

$('div')

 .find('h3')

 .eq(2)

 .html('Hello')

 .end() //退回到选中所有的h3元素的那一步

 .eq(0) //选中第一个h3元素

 .html('World'); //将它的内容改为World