jQuery的功能
- jQuery是一个javascript函数库。
- jQuery的基本设计思想和主要用法就是选择某个网页元素,然后对其进行某种操作。
获取网页元素
- 将一个选择器放进构造函数jQuery()(简写为$)中,然后得到被选中的元素。
/*CSS选择器*/
$(document) //选择整个文档对象
$('#myId') //选择ID为myId的网页元素
$('div.myClass') // 选择class为myClass的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也提供强大的过滤器,对结果集进行筛选
/*选择某个或某些元素*/
$('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的操作返回的都是一个jQuery对象,所以不同操作可以连接在一起。
$('div').find('h3').eq(2).html('Hello').end().eq(0).html('World');//链条操作
/*分解后*/
$('div') //找到div元素
.find('h3') //选择其中的h3元素
.eq(2) //选择结果集中下标为2的元素
.html('Hello') //将它的内容改为Hello
.end()//退回到选中所有h3的那一步
.eq(0)//选择结果集中下标为0的元素
.html('World');//将它的内容改为World
对元素赋值/取值
- 对网页元素的一般操作就是取值/赋值
- jQuery中取值器和赋值器是合一的,由函数的参数决定取值还是赋值。
/*举个例子*/
$('h1').html(); //html()没有参数,表示取出h1的值
$('h1').html('Hello'); //html()有参数Hello,表示对h1进行赋值
- 如果结果集包含多个元素,那么赋值则为所有元素赋值,取值只取第一个元素的值(.text()除外)
常见取值/赋值函数
- .html():取出或设置html内容
- .text():取出或设置text内容
- .attr():取出或设置某个属性的值
- .width():取出或设置某个元素的宽度
- .height():取出或设置某个元素的高度
- .val():取出某个表单元素的值
移动元素
- jQuery提供两组方法来操作元素在网页中移动
- 使用.insertAfter(),把div元素移动p元素后面:
$('div').insertAfter($('p'));//返回div元素- 使用.after(),把p元素加到div元素前面:
$('p').after($('div'));//返回p元素 - 一共有四对操作方式
- .insertAfter()和.after():在现存元素的外部,从后面插入元素
- .insertBefore()和.before():在现存元素的外部,从前面插入元素
- .appendTo()和.append():在现存元素的内部,从后面插入元素
- .prependTo()和.prepend():在现存元素的内部,从前面插入元素
复制,删除,创建元素
- jQuery还提供对元素的复制,删除,创建操作
- 复制:.clone()
- 删除:.remove()(不保留被删除元素的事件)/.datch()(保留被删除元素的事件)
- 清空元素:.empty() ---不删除,只清空
- 创建元素:把新元素直接传入jQuery的构造函数即可
$('<p>Hello</p>'); $('<li class="new">new list item</li>'); $('ul').append('<li>list item</li>');