Jquery学习笔记

第一天

jQuery介绍

Jquery是一个js框架(其实就是一个js.文件),他的特点是使用选择器查找到要操作的节点,选择器就是jquery借鉴css选择器的语法而创建的一种查找操作的节点的语法格式,比如$(‘#id’);,并且将这些节点封装成jquery对象,这是为了针对多个节点的同一个操作而生成的工具,或者是多个节点的不同操作但是实现的功能是以一样的时候使用。封装的目的是为了更好的兼容不同的浏览器之间的差异,同时也会简化代码。

jQuery是一个js框架(其实就是一个.js文件),它的特点是

使用选择器查找要操作的节点,并且将这些节点封装成一个

jQuery对象。封装的目的是为了更好地兼容不同的浏览器

之间的差异,同时也会简化代码。

注:

选择器是jQuery借鉴css选择器的语法而创建的一种

查找要操作的节点的语法格式。比如$('#id');

2、jQuery基础

(1)jQuery编程的基本步骤

step1,引入jQuery.js文件

step2,使用选择器查找要操作的节点

step3,调用jQuery对象的属性或者方法来操作

相应的节点。

(2)jQuery对象与dom对象之间的转换

1)dom对象--->jQuery对象

$(dom对象);

2)jQuery对象---->dom对象

第一种方式:$obj.get(0);

第二种方式:$obj.get()[0];

(3)jQuery与prototype如何同时使用?

因为jQuery与prototype都使用$函数,需要使用

var$a=jQuery.noConflict()将$函数改名为"$a"。

3、jQuery选择器selector

1)、基本选择器selector/a1.html

#id

.class

element

selector1,selector2..selectorn

*

2)、层次选择器selector/a2.html

select1select2

select1>select2

select1+select2

select1~select2

3)、过滤选择器

(1)基本过滤选择器selector/a3.html

:first

:last

:not(selector)

:even

:odd

:eq(index)

:gt(index)

:lt(index)

(2)内容过滤选择器selector/a4.html

:contains(text)

:empty没有子节点,或者内容为空的节点。

:has(selector)

:parent跟empty相反,即有子节点,或者内容不为空的节点。

(3)可见性过滤选择器selector/a5.html

:hidden

:visible

(4)属性过滤选择器selector/a6.html

[attribute]

[attribute=value]

[attribute!=value]

(5)子元素过滤选择器selector/a7.html

:nth-child(index/even/odd)

(6)表单对象属性过滤选择器selector/a8.html

:enabled

:disabled

:checked

:selected

4)、表单选择器

:input

:text

:pasword

:radio

:checkbox

:submit

:image

:reset

:button

:file

:hidden

4、dom操作

1)、查询dom/d1.html

利用选择器找到要操作的节点之后,访问节点的

html内容、text内容、节点的值以及节点的属性值。

除此之外,还可以修改这些值。

a,html():相当于innerHTML

b,text():相当于innerText

c,val():

d,attr():

2)、创建dom/d2.html

$(html);

3)、插入节点

append():向每个匹配的元素内部追加内容

prepend():向每个匹配的元素内部前置内容

after():在每个匹配的元素之后插入内容

before():在每个匹配的元素之前插入内容

4)、删除节点dom/d3.html

remove()

remove(selector)

empty():清空节点

5)、复制节点dom/d6.html

clone():

clone(true):使复制的节点也具有行为

6)、属性操作dom/d7.html

读取:attr('');

设置:attr('','')

或者一次设置多个attr({"":"","":""});

删除:removeAttr('')

7)、样式操作dom/d8.html

获取和设置:attr("class",""),attr("style","");

追加:addClass('')

移除:removeClass('')

或者removeClass('s1s2')

或者removeClass()//会删除所有样式

切换样式:toggleClass

是否有某个样式hasClass('')

读取css('')

设置css('','')或者css({'':'','':''})//设置多个样式

8)、遍历节点dom/d9.html

children()/children(selector):

只考虑子元素,不考虑其它后代元素。

next(selector):上一个兄弟

prev(selector):

siblings(selector):其它兄弟

parent():父节点

find(selector):从当前节点开始,查找所有后代。

5、如何将js代码与html分开(将数据与行为分离)dom/d4,d5.html

//window.onload:当整个页面加载完毕,会产生

//load事件,就会执行绑订的函数。

window.onload=function(){

varobj=document.getElementById("d1");

obj.onclick=function(){

obj.innerHTML="hellojava";

};

};

在使用jQuery时,可以使用如下的代码来实现

js与html的分离:

$(function(){

//js代码:这些js代码会在整个页面加载完毕之后

//执行。

});

第二天

1、事件处理机制event

1)、事件绑订event/e1.html

bind(type,fn)

2)、绑订方式的简写形式

click(function(){

});

3)、合成事件event/e2.htmle3.html

hover(enter,leave):模拟光标悬停事件

toggle(fn1,fn2...):模拟鼠标连续单击事件

4)、事件冒泡

(1)获得事件对象event/e4.htmle5.htmle6.html

click(function(e){

});

(2)停止冒泡event/e7.html

event.stopPropagation()

(3)停止默认行为event/e8.html

event.preventDefault()

5)、事件对象的属性event/e6.html

event.type

event.target:返回事件源(是dom对象)

event.pageX/pageY

6)、模拟操作event/e9.html

trigger('click')

2、动画animate

1)、show(),hide()a1.html

作用:通过同时改变元素的宽度与高度来实现

显示和隐藏的效果。

语法:

show(速度,callback);

速度:'slow','normal','fast'/800(毫秒)

callback:在动画执行完毕之后,会执行这个函数

2)、fadeIn()fadeOut():animate/a2.html

作用,通过改变元素的不透明度来实现

语法:slideUp(速度,callback);

显示和隐藏的效果。

3)、slideUp()slideDown():amimate/a1.html

作用:通过改变元素的高度来实现

显示和隐藏的效果。

语法:slideUp(速度,callback);

4)、自定义动画animate(params,speed,callback)a3.html

语法:

params:是一个js对象,描述了动画执行

结束时元素的样式,比如:

{'top':'600px','left':'200px'}

speed:毫秒

callback:在动画执行完毕之后,会执行这个函数

3、类数组的操作array/a1.html

jQuery选择器返回的是一个jQuery对象(该

对象可能包括了多个dom节点),如果要对这些

dom节点分别做不同的处理,就需要去遍历,

需要调用jQuery对象提供的一些方法或者属性,

称之为类数组的操作。

1)each(fn(i)):循环遍历每一个元素,

this代表被迭代的dom对象,$(this)代表

被迭代的jQuery对象。

2)eq(index):返回index+1位置处的jQuery对象

3)index(obj):返回下标,其中obj可以是dom对象

或者jQuery对象。

4)length属性:dom对象的个数

5)get():返回dom对象组成的数组

6)get(index):返回index+1个dom对象。

练习1:点击某一行,该行加亮,同时,单选框被选中。

练习2:完成移动多选框:

1)点击"-->",将左边下拉列表中用户选中的选项移动

到右边。如果用户没有选择任何选项,则提示

用户“必须选择至少一个选项"。

2)点击"<--",跟"-->“正好相反。

3)点击"-->>",将左边下拉列表中的用户全部移动

到右边。

4)点击"<<--",跟"-->>"正好相反。

第三天

1、jQuery对ajax编程的支持

(1)load方法:

作用:是将服务器返回的数据直接添加到符合要求的

节点之上,相当于obj.innerHTML=返回的数据。

语法:

$obj.load(请求地址,[请求参数]);

其中,请求参数可以有两种形式:

第一种:请求字符串,比如"username=zs",或者

“username=zs&age=22"。

第二种:javascript对象,比如

{'username':'zs'},或者{'username':'zs','age':22}

load方法如果没有请求参数,会发送get请求,如果有

请求参数,会发送post请求。

(2)$.get方法

作用:向服务器发送get请求

语法:$.get(url,[data],[callback],[type]):

url:请求地址

data:请求参数,可以是请求字符串或者是js对象。

callback:是一个回调函数,用于处理服务器

返回的数据,其格式function(data,statusText),

data是服务器返回的数据,statusText是服务器

处理的状态。

type:服务器返回的数据类型:

text:文本字符串

html:html内容

xml:返回dom兼容的xml对象

json:json字符串

script:javascript脚本

$.post()格式同上。

(3)$.ajax方法

作用:可以设置不同的参数,控制ajax对象向服务器

发请求。

语法:

$.ajax(options):

其中,options是一个形如

{key1:value1,key2,value2...}的js对象,

用于指定发送请求的选项。

选项参数如下:

url(string):请求地址

type(string):GET/POST

data(object/string):请求参数,可以是请求字符串或者js对象

dataType(string):服务器返回的数据类型

success(function):请求成功后调用的回调函数,有两个参数:

function(data,textStatus),其中,

data是服务器返回的数据,

textStatus描述状态的字符串。

error(function):请求失败时调用的函数,有三个参数

function(xhr,textStatus,errorThrown),

xhr:ajax对象,即XMLHttpRequest对象。

textStatus和errorThrown,jQuery保证

其中的一个参数可以获得异常的描述。

async:true(缺省)/false

练习1:商品热卖

练习2:自动完成

step1,服务器端代码

服务器依据关键字,返回一个类似于以下的字符串:

小米,小米2,小说,小米官网

step2,客户端代码

1)对文本输入框绑订keyup事件处理代码:

比如$('#key').keyup(fn);

2)在fn函数中:

a1,分解服务器返回的字符串,获得一个个选项,

将这些选项添加到文本输入框的下面。

a2,每一个选项绑订click事件(将用户

点击选中的选项复制到文本输入框)

a3,每一个选项绑订mouseenter事件(加亮对应的选项)处理代码。

注意:keyup事件在某些浏览器中,在切换中文输入法时,会有

bug,需要我们自己解决,如果发现有这个问题,需要使用如下

代码:

vareventname='input';

if(navigator.userAgent.indexOf('MSIE')!=-1){

eventname='propertychange';

}

$('#key').bind(eventname,fn);

相关推荐