1 基本思想
-
jQuery返回的是一个可以操作elements的对象;
-
jQuery的核心思想:它提供一个函数,这个函数接受一个CSS选择器,然后获取到这些元素,但是不会返回这些元素,会返回一个对象,这个对象中的方法(函数)会去操作这些元素,用闭包去维持elements(获取到的元素),只要函数不死,elements就不死,因为函数在访问elements,被访问的东西是不能随便删掉的;
-
给jQuery对象传什么,jQuery就操作什么;
2 获取元素
2.1 CSS选择器
$(document) //选择整个文档对象
$('#myId') //选择id为myId的元素
$('div.myClass') //选择class为myClass的div元素
$('input[name=first]') //选择name属性等于first的input元素
2.2 jQuery表达式
$('a:first') //选择网页中第一个a元素
$('tr:odd') //选择表格的奇数行
$('#myForm :input') //选择表单中的input元素
$('div:visible') //选择可见的div元素
$('div:gt(2)') //选择所有的div元素,除了前三个
$('div:animated') //选择当前处于动画状态的div元素
3 复制、删除、创建元素
-
复制:
.clone; -
删除;
.remove() //不保留被删除元素的事件
.detach() //保留,有利于重新插入文档时使用
- 创建:直接将新元素传入 jQuery 的构造函数就行:
$('<p>Hello</p>');
$('ul').append('<li> list item </li>');
4 链式操作
- 原理: 每一步的 jQuery 操作,返回的都是一个 jQuery 对象,所以不同操作可以连在一起。
$('div').find('h3').eq(2).html('Hello');
分解后:
$('div') //找到div元素
.find('h3') //选择其中的h3元素
.eq(2) //选择第3个h3元素
.html('Hello'); //将它的内容改为Hello
- jQuery 还提供了 .end() 方法,使得结果集可以后退一步。
$('div')
.find('h3')
.eq(2)
.html('Hello')
**.end() //退回到选中所有的h3元素的那一步**
.eq(0) //选中第一个h3元素
.html('World'); //将它的内容改为World
5 移动元素
5.1 直接移动元素
$('div').insertAfter($('p')) //将 div 元素插入到 p 元素后面,返回 div 元素;
5.2 移动其它元素,使得目标元素到达想要的位置
$('p').after($('div')) //将 p 元素移动到 div 前面,返回 p 元素;
5.3 类似操作方法
.insertAfter()和.after() //在现存元素的外部,从后面插入元素
.insertBefore()和.before() //在现存元素的外部,从前面插入元素
.appendTo()和.append() //在现存元素的内部,从后面插入元素
.prependTo()]和.prepend() //在现存元素的内部,从前面插入元素
6 修改元素的属性
取值(getter)和赋值(setter)合一,根据参数的个数决定:
$('h1').html() //html()没有参数,表示取出h1的值
$('h1').html('Hello') //html()有参数Hello,表示对h1进行赋值
常见的取值和赋值函数:
.html() //取出或设置html内容
.text() //取出或设置text内容
.attr() //取出或设置某个属性的值
.width() //取出或设置某个元素的宽度
.height() //取出或设置某个元素的高度
.val() //取出某个表单元素的值
- 注意:如果结果包含多个元素,那么赋值的时候,将对其中所有的元素赋值;取值的时候,则是只取出第一个元素的值(.text()例外,它取出所有元素的 text 内容)
7 文档
jQuery() | jQuery API Documentation;