jQuery

jQuery 能做什么?

jQuery是一个快速、简洁的JavaScript框架;一个优秀的JavaScript代码库,jQuery设计的宗旨是“write Less,Do More”;它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。
(1). 选择网页元素:
可以方便快捷的获取网页元素,使用原生javascript的方式来遍历或者查找DOM元素的某个部分会造成编写很多冗余代码。而jQuery一行代码就够了。

$(' div .content').find('p');//查找符合选择器的后代元素
$(' ul > li ').eq(0).siblings();//选择兄弟节点
$('ul > li').parent();//选取父亲节点
$('#box').children();//选取儿子节点

(2). 元素的操作:取值和赋值
可以方便快速的取值和赋值,例如:

$('#box').html();
$('#box').text();
$('#box').val();//主要是选中表单输入框中的值。
//传递参数为设置值,不传参数为获取值。

(3). 元素的操作:复制,删除和创建
包括DOM内部插入节点:
append()向每个匹配的元素内部追加内容
prepend()向每个匹配的元素内部前置内容
appendTo()把所有匹配的元素追加到另一个指定元素的集合中。
prependTo()把所有匹配的元素前置到另一个指定的元素集合中。
after()与before()表示用来对相对选中元素外部增加相邻的兄弟节点2个方法都是都可以接收HTML字符串,DOM 元素,元素数组,或者jQuery对象,用来插入到集合中每个匹配元素的前面或者后面。
before()、after()与insertBefore()。insertAfter()的除了目标与位置的不同外,后面的不支持多参数处理 ;
before 是前面是基准后面是要插入的元素,insertBefore是前面是要插入的内容,后面是基准。after()和insertAfter()类似。
DOM节点删除内容:
empty():empty它只移除指定元素中的所有子节点(自身不移除)。这个方法不仅移除子元素(和其他后代元素)同样移除元素里的文本。
remove():remove移除元素,自身包括后代全都移除。
detach():detach从字面上就很容易理解。让一个web元素托管。即从当前页面中移除该元素,但保留这个元素的内存模型对象。这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。当你append之后,又重新回到了文档流中。就又显示出来了。
DOM拷贝clone():
clone()方法深度 复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。如果节点有事件或者数据之类的其他处理,我们需要通过clone(true)传递一个布尔值ture用来指定,这样不仅仅只是克隆单纯的节点结构,还要把附带的事件与数据给一并克隆了。
(4). 工具方法
常用方法:each()遍历一个jQuery对象,为每个匹配元素执行一个函数;

$(' ul > li ').each(function(value,index){})

index()从给定集合中查找特定元素index;没参数返回第一个元素index;如果参数是DOM对象或者jQuery对象,则返回参数在集合中的index;如果参数是选择器,返回第一个匹配元素index,没有找到返回-1。

$('.active').index();

map()通过一个函数匹配当前集合中的每个元素,产生一个包含新的jQuery对象

$(' div ').map(function(index,item){})

ready()当DOM准备就绪时,指定一个函数来执行。与window.onload不同的是不必等待图片等其他资源加载完毕就可以执行。
(5). jQuery事件操作
on(events ,[ selector ] ,[ data ])和off()
各个参数的含义:
events:一个或多个空格分隔的事件类型和可选的命名空间;
selector:一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素;
data:当一个事件被触发时,要传递给事件处理函数的event.data;
handler(eventObject):事件被触发时,执行的函数。

$('div').on('click', function(e){
    console.log(this);
    console.log(e);
})
//事件委托  让div下的span全都绑定事件,事件可以绑定在div上
$('div').on('click', 'span', function(e){
    console.log(this);
    console.log(e);
});

委托事件有一个优势,他们能在后代元素添加到文档后,可以处理这些事件。在确保所选择的元素已经存在的情况下,进行事件绑定时,可以使用委派的事件,以避免频繁的绑定事件及解除绑定事件。
off(events [, selector ] [, handler ] )
类似于on,但为移除一个事件的处理函数。
trigger():根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为

   $('#foo').on('click', function() {
       alert($(this).text());
    });
$('#foo').trigger('click');

(6). 特殊效果
hide([duration ] [,easing ] [,complete ])
duration:动画持续多久
easing:表示过渡使用哪种缓动函数,jQuery自身提供"linear" 和 "swing"
complete:在动画完成时执行的函数
用于隐藏元素,没有参数的时候等同于直接设置display属性
show()同上,用于显示元素。
toggle()切换,用于切换元素的隐藏显示。

$('#box').hide();
$('#box').show();
$('#box').toggle();

fadeIn( [duration ] [, easing ] [, complete ] ),fadeOut
淡入和淡出,fadeToggle淡入和淡出切换

$('#box').fadeIn('slow',function(){})

slideDown( [duration ] [, easing ] [, complete ] ),slideUp滑动卷上或者滑下;slideToggle两者切换

$('#box').slideUp('slow', function() {
});

animate(properties [, duration ] [, easing ] [, complete ])
自定义动画

properties是一个CSS属性和值的对象,动画将根据这组对象移动。
duration是一个字符串或者数字决定动画将运行多久。
easing是一个字符串,表示过渡使用哪种缓动函数。
complete:在动画完成时执行的函数
stop(),finish()
stop()表示动画停止并停留在当前状态;finish()表示动画立即结束并返回最初状态。
(7). AJAX

$.ajax({
url:'xxx',//请求的url地址
method: 'GET',//请求的方式GET或者POST
data:{name:'lzj',age:24},//传递的参数
success:function(data){},//成功执行的回调
...//还可以配置很多参数
})

async:布尔值,表示请求是否异步处理。默认是 true。
cache:布尔值,表示浏览器是否缓存被请求页面。默认是 true。
dataType:规定预期的服务器响应的数据类型。默认执行智能判断(xml、json、script 或 html)。
context:这个对象用于设置Ajax相关回调函数的上下文。 默认情况下,这个上下文是一个ajax请求使用的参数设置对象
headers:一个额外的{键:值}对映射到请求一起发送。此设置会在beforeSend 函数调用之前被设置 ;因此,请求头中的设置值,会被beforeSend 函数内的设置覆盖。

jQuery 对象和 DOM 原生对象有什么区别?如何转化?

DOM对象是我们用传统的javaScript方法获得的对象,jQuery对象就是用jQuery的类库选择器获得的对象。
JQuery对象就是通过jQuery包装DOM对象后产生的对象。JQuery对象是jQuery独有的,其可以使用jQuery里的方法,但是不能使用DOM的方法;DOM对象能使用javascript固有的方法,但是不能使用jQuery里面的方法。例如:

$(' #box ').html();//jQuery对象的方法与下面的DOM对象方法等同
document.getElementById('box').innerHTML;

jQuery对象和DOM对象的相互转换

$('#box')[0];//jQuery对象转换成DOM对象
var box = document.getElementById('box');//dom对象转换为jQuery对象
var $box = $(box);

jQuery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?

绑定事件$('#box').on('click',function(){})
$(selector).bind(event,data,function,map)

bind() 方法向被选元素添加一个或多个事件处理程序,以及当事件发生时运行的函数。

$(selector).unbind(event,function,eventObj)

unbind() 方法移除被选元素的事件处理程序。
该方法能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行。

$(selector).delegate(childSelector,event,data,function)

delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

$(selector).live(event,data,function)

live() 方法为被选元素添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数.

$(selector).on(event,childSelector,data,function,map)

on() 方法在被选元素及子元素上添加一个或多个事件处理程序。map规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。

$(selector).off(event,selector,function(eventObj),map)

off() 方法通常用于移除通过 on()方法添加的事件处理程序。

推荐on()和off()
使用on事件代理的写法:
$('ul').on('click','li',function(){代理的绑定事件})

jQuery 如何展示/隐藏元素?

使用show()和hide()方法

$('#box').show();
$('#box').hide();
$('#box').toggle();//切换隐藏或显示

使用fadeIn()和fadeOut()淡入淡出

$('#box').fadeIn();
$('#box').fadeOut();
$('#box').fadeToggle();//切换隐藏或显示

使用slideUp()和slideDown()滑入滑出

$('#box').slideUp();
$('#box').slideDown();
$('#box').slideToggle();//切换隐藏或显示

jQuery 动画如何使用?

animate(properties , duration , easing ,callback)自定义动画
必须参数 properties 参数定义形成动画的 CSS 属性。
可选的 duration 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 easing 可选。规定在动画的不同点中元素的速度。默认值是 "swing"。"swing" - 在开头/结尾移动慢,在中间移动快。"linear" - 匀速移动;
可选的 callback 参数是动画完成后所执行的函数名称。
PS:注意properties 驼峰命名。

如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?

$('#box').html('xxx');
$('#box').html();
$('#box').text('xxx');
$('#box').text();

如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?

$('input').val('xxx');
$('input').val();
$('div').attr(attrName,attrValue);
$('div').attr(attrName);

任务8-11

任务8
任务9
任务10
任务11

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 1、 jQuery 能做什么? jquery是一个丰富的js库,内部对js的很多复杂的方法进行了封装和加工,比如j...
    zh_yang阅读 1,398评论 6 13
  • 原文链接 http://blog.poetries.top/2016/10/20/review-jQuery 关注...
    程序员poetry阅读 16,634评论 18 503
  • 题目1: jQuery 能做什么? 选择网页元素 改变结果集 元素的操作:取值和赋值 元素的操作:移动 元素的操作...
    cheneyzhangch阅读 416评论 0 1
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,321评论 0 2
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,157评论 0 1