JQuery入门
2016-05-09 19:23
591 查看
一.什么是jQuery
jQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法。它的作者是JohnResig,于2006年创建的一个开源项目,随着越来越多开发者的加入,jQuery已经集成了JavaScript、CSS、DOM和Ajax于一体的强大功能。它可以用最少的代码,完成更多复杂而困难的功能,从而得到了开发者的青睐。
在开始学jQuery之前,我们要先下载JQuery的最新版本,jquery-2.0.2.js 。下载好后,我们可以先在www目录下先创建一个文件夹JQ,然后把jquery-2.0.2.js放在里面,然后新建index.html,也放在该目录下。在index.html里写以下代码:
在jQuery程序中,不管是页面元素的选择、内置的功能函数,都是美元符号“$”来起始的。而这个“$”就是jQuery当中最重要且独有的对象:
jQuery对象,所以我们在页面元素选择或执行功能函数的时候可以这么写:
值得一提的是,执行了.css()这个功能函数后,最终返回的还是jQuery对象,那么也就是说,jQuery的代码模式是采用的连缀方式,
可以不停的连续调用功能函数。
运行效果如下图所示:
二、JQuery选择器和过滤器
1.选择器
在使用jQuery选择器时,我们首先必须使用“$()”函数来包装我们的CSS规则。而CSS规则作为参数传递到jQuery对象内部后,再返回包含页面中对应元素的jQuery对象。随后,我们就可以对这个获取到的DOM节点进行行为操作了。
在基础选择器外,还有一些进阶和高级的选择器方便我们更精准的选择元素。
进阶选择器:包括群组、后代、通配选择器。
高级选择器,也叫做层次选择器,可以处理很多特殊的元素,比如父子关系的元素,兄弟关系的元素,特殊属性的元素等等。
2.过滤器
过滤选择器简称:过滤器。它其实也是一种选择器,而这种选择器类似与CSS3(http://t.mb5u.com/css3/)里的伪类,可以让不支持CSS3的低版本浏览器也能支持。和常规
选择器一样,jQuery为了更方便开发者使用,提供了很多独有的过滤器。过滤器主要通过特定的过滤规则来筛选所需的DOM元素,和CSS中的伪类的语法类似:使用冒号(:)开头。
举例说明:
三、基础DOM和CSS操作
DOM是一种文档对象模型,方便开发者对HTML结构元素内容进行展示和修改。在JavaScript中,DOM不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容
性、扩展性。在jQuery中,已经将最常用的DOM操作方法进行了有效封装,并且不需要考虑浏览器的兼容性。
1.设置元素及内容
在常规的DOM元素中,我们可以使用html()和text()方法获取内部的数据。html()方法可以获取或设置html内容,text()可以获取或设置文本内容。
如果元素是表单的话,jQuery提供了val()方法进行获取或设置内部的文本数据。
2.元素属性操作
除了对元素内容进行设置和获取,通过jQuery也可以对元素本身的属性进行操作,包括获取属性的属性值、设置属性的属性值,并且可以删除掉属性。
3.元素样式操作
对元素的样式进行设置,修改,获取操作。
四、事件入门
JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击。当用户执行某些操作的时候,再去执行一系列代码。一般是用于浏览器和用户操作进行交互。最早是IE和NetscapeNavigator中出现,作为分担服务器端运算负载的一种手段。直到几乎所有的浏览器都支持事件处理。
1.内联模型的事件
这种模型是最传统接单的一种处理事件的方法。在内联模型中,事件处理函数是HTML标签的一个属性,用于处理指定事件。虽然内联在早期使用较多,但它是和HTML混写的,并没有与HTML分离。
由于内联模型违反了HTML与JavaScript代码层次分离的原则。为了解决这个问题,我们可以在JavaScript中处理事件。这种处理方式就是脚本模型。
在JavaScript课程的学习中,我们掌握了很多使用的事件,常用的事件有:click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、change、select、submit、keydown、keypress、keyup、blur、focus、load、resize、scroll、error。那么,还有更多的事件可以参考手册中的事件部分。jQuery通过.bind()方法来为元素绑定这些事件。可以传递三个参数:bind(type,[data],fn),type表示一个或多个类型的事件名字符串;[data]是可选的,作为event.data属性值传递一个额外的数据,这个数据是一个字符串、一个数字、一个数组或一个对象;fn表示绑定到指定元素的处理函数。
使用unbind删除绑定的事件
4.事件函数
为了使开发者更加方便的绑定事件,jQuery封装了常用的事件函数以便节约更多的代码。我们称它为简写事件。
JS事件包括鼠标事件,键盘事件,HTML事件
示例:
五、JQ动画入门
在以前很长一段时间里,网页上的各种特效还需要采用flash在进行。但最近几年里,我们已经很少看到这种情况了,绝大部分已经使用JavaScript动画效果来取代flash。这里说的取代是网页特效部分,而不是动画。网页特效比如:渐变菜单、渐进显示、图片轮播等;而动画比如:
故事情节广告、MV等等。
1.显示、隐藏
jQuery中显示方法为:.show(),隐藏方法为:.hide()。在无参数的时候,只是硬性的显示内容和隐藏内容。
jQuery提供了一组改变元素高度的方法:.slideUp()、.slideDown()和.slideToggle()。顾名思义,向上收缩(卷动)和向下展开(滑动)。
3.自定义动画
jQuery提供了几种简单常用的固定动画方面我们使用。但有些时候,这些简单动画无法满足我们更加复杂的需求。这个时候,jQuery提供了一个.animate()方法来创建
我们的自定义动画,满足更多复杂多变的要求。
同步动画,设置多个css的目标值
列队动画,通过连缀的方法不停的调用animate
jQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法。它的作者是JohnResig,于2006年创建的一个开源项目,随着越来越多开发者的加入,jQuery已经集成了JavaScript、CSS、DOM和Ajax于一体的强大功能。它可以用最少的代码,完成更多复杂而困难的功能,从而得到了开发者的青睐。
在开始学jQuery之前,我们要先下载JQuery的最新版本,jquery-2.0.2.js 。下载好后,我们可以先在www目录下先创建一个文件夹JQ,然后把jquery-2.0.2.js放在里面,然后新建index.html,也放在该目录下。在index.html里写以下代码:
<!DOCTYPE html> <html> <head> <title>JQ入门</title> <script src="jquery-2.0.2.js"></script> <!--引入JQ文件--> </head> <body> <h3 style="margin:200px auto;background:#9cf;padding:10px;width:80px;cursor:pointer">JQ入门</h3> <script type="text/javascript"> $('h3').click(function (){ //点击h3后触发事件 alert("我是h3"); //弹窗 }) </script> </body> </html>运行后网页就会弹窗,显示"我是h3"。
在jQuery程序中,不管是页面元素的选择、内置的功能函数,都是美元符号“$”来起始的。而这个“$”就是jQuery当中最重要且独有的对象:
jQuery对象,所以我们在页面元素选择或执行功能函数的时候可以这么写:
$('#box'); //进行执行的ID元素选择 $('#box').css('color','red'); //执行功能函数
值得一提的是,执行了.css()这个功能函数后,最终返回的还是jQuery对象,那么也就是说,jQuery的代码模式是采用的连缀方式,
可以不停的连续调用功能函数。
$('#box').css('color','red').css('font-size', '50px'); //连缀jQuery想要达到获取原生的DOM对象,可以这么处理:
<!DOCTYPE html> <html> <head> <title>JQ入门</title> <script src="jquery-2.0.2.js"></script> <!--引入JQ文件--> </head> <body> <div id="box" style="margin:200px auto;background:#9cf;padding:10px;width:80px;cursor:pointer">我是box</div> <script type="text/javascript"> alert($("#box").get(0));//通过JQ来获取原生的DOM对象 </script> </body> </html>
运行效果如下图所示:
二、JQuery选择器和过滤器
1.选择器
在使用jQuery选择器时,我们首先必须使用“$()”函数来包装我们的CSS规则。而CSS规则作为参数传递到jQuery对象内部后,再返回包含页面中对应元素的jQuery对象。随后,我们就可以对这个获取到的DOM节点进行行为操作了。
#box{ color:red;} //使用ID选择器的CSS规则将ID为box的元素字体颜色变红在jQuery选择器里,我们使用如下的方式获取同样的结果:
$('#box').css('color','red'); //获取DOM节点对象,并添加行为那么除了ID选择器之外,还有两种基本的选择器,分别为:元素标签名和类(class):
在基础选择器外,还有一些进阶和高级的选择器方便我们更精准的选择元素。
进阶选择器:包括群组、后代、通配选择器。
//群组选择器 span,em,.box{color:red;} //多种选择器添加红色字体 $('span,em,.box').css('color','red'); //群组选择器jQuery方式 //后代选择器 ul li a{ color:red;}//层层追溯到的元素添加红色字体 $('ul li a').css('color','red'); //群组选择器jQuery方式 //通配选择器 *{ color:red;}//页面所有元素都添加红色字体 $('*').css('color','red'); //通配选择器
高级选择器,也叫做层次选择器,可以处理很多特殊的元素,比如父子关系的元素,兄弟关系的元素,特殊属性的元素等等。
/*后代选择器,获取追溯到的多个DOM对象*/ $('#box p').css('color','red'); //后代选择器 $('#box').find('p').css('color','red'); //find()方法,和后代选择器等价 /*子选择器,只获取子类节点的多个DOM对象,孙子后失明*/ $('#box>p').css('color','red'); //子选择器 $('#box').children('p').css('color','red'); //children()方法,和子选择器等价 /*next选择器,只获取某节点后一个同级DOM对象*/ $('#box+p').css('color','red'); //next选择器 $('#box').next('p').css('color','red'); //next()方法,和next选择器等价 /*nextAll选择器,获取某节点后面所有同级DOM对象)*/ $('#box~p').css('color','red'); //nextAll选择器 $('#box').nextAll('p').css('color','red'); //nextAll()方法,和nextAll选择器等价 /*类似的,还有prev(),prevAll()方法,用来获取某节点前面一个或所有同级DOM对象*/ $('#box').prev('p').css('color','red'); //同级上一个元素 $('#box').prevAll('p').css('color','red'); //同级所有上面的元素 /*siblings()方法正好集成了prevAll()和nextAll()两个功能的效果,及上下相邻的所有元素进行选定:*/ $('#box').siblings('p').css('color','red'); //同级上下所有元素选定 //等价于下面: $('#box').prevAll('p').css('color','red'); //同级上所有元素选定 $('#box').nextAll('p').css('color','red'); //同级下所有元素选定
2.过滤器
过滤选择器简称:过滤器。它其实也是一种选择器,而这种选择器类似与CSS3(http://t.mb5u.com/css3/)里的伪类,可以让不支持CSS3的低版本浏览器也能支持。和常规
选择器一样,jQuery为了更方便开发者使用,提供了很多独有的过滤器。过滤器主要通过特定的过滤规则来筛选所需的DOM元素,和CSS中的伪类的语法类似:使用冒号(:)开头。
举例说明:
$('li:first').css('background', '#ccc'); //第一个元素 $('li:last').css('background','#ccc'); //最后一个元素 $('li:not(.red)').css('background','#ccc'); //非class为red的元素 $('li:even').css('background', '#ccc'); //索引为偶数的元素 $('li:odd').css('background','#ccc'); //索引为奇数的元素 $('li:eq(2)').css('background','#ccc'); //指定索引值的元素 $('li:gt(2)').css('background','#ccc'); //大于索引值的元素 $('li:lt(2)').css('background','#ccc'); //小于索引值的元素 $(':header').css('background', '#ccc'); //页面所有h1~h6元素jQuery为最常用的过滤器提供了专用的方法,已达到提到性能和效率的作用:
$('li').eq(2).css('background','#ccc'); //元素li的第三个元素,负数从后开始 $('li').first().css('background','#ccc'); //元素li的第一个元素 $('li').last().css('background','#ccc'); //元素li的最后一个元素 $('li').not('.red').css('background','#ccc'); //元素li不含class为red的元素
三、基础DOM和CSS操作
DOM是一种文档对象模型,方便开发者对HTML结构元素内容进行展示和修改。在JavaScript中,DOM不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容
性、扩展性。在jQuery中,已经将最常用的DOM操作方法进行了有效封装,并且不需要考虑浏览器的兼容性。
1.设置元素及内容
在常规的DOM元素中,我们可以使用html()和text()方法获取内部的数据。html()方法可以获取或设置html内容,text()可以获取或设置文本内容。
$('#box').html(); //获取html内容 $('#box').text(); //获取文本内容,会自动清理html标签 $('#box').html('<em>www.li.cc</em>'); //设置html内容 $('#box').text('<em>www.li.cc</em>'); //设置文本内容,会自动转义html标签注意:当我们使用html()或text()设置元素里的内容时,会清空原来的数据。而我们期望能够追加数据的话,需要先获取原本的数据。
$('#box').html($('#box').html()+'<em>www.li.cc</em>'); //追加数据
如果元素是表单的话,jQuery提供了val()方法进行获取或设置内部的文本数据。
$('input').val(); //获取表单内容 $('input').val('www.li.cc'); //设置表单内容
2.元素属性操作
除了对元素内容进行设置和获取,通过jQuery也可以对元素本身的属性进行操作,包括获取属性的属性值、设置属性的属性值,并且可以删除掉属性。
$('div').attr('title'); //获取属性的属性值 $('div').attr('title','我是域名'); //设置属性及属性值 $('div').attr('title',function(){ //通过匿名函数返回属性值 return '我是域名'; }); $('div').attr('title',function(index,value){ //可以接受两个参数 return value+(index+1)+',我是域名'; }); $('div').removeAttr('title'); //删除指定的属性
3.元素样式操作
对元素的样式进行设置,修改,获取操作。
/*获取元素行内CSS样式的颜色*/ $('div').css('color'); /*设置元素行内CSS样式颜色为红色*/ $('div').css('color','red'); /*在需要设置多个样式的时候,我们可以传递多个CSS样式的键值对即可。*/ $('div').css({ 'background-color' :'#ccc', 'color' :'red', 'font-size' :'20px' });
四、事件入门
JavaScript事件是由访问Web页面的用户引起的一系列操作,例如:用户点击。当用户执行某些操作的时候,再去执行一系列代码。一般是用于浏览器和用户操作进行交互。最早是IE和NetscapeNavigator中出现,作为分担服务器端运算负载的一种手段。直到几乎所有的浏览器都支持事件处理。
1.内联模型的事件
这种模型是最传统接单的一种处理事件的方法。在内联模型中,事件处理函数是HTML标签的一个属性,用于处理指定事件。虽然内联在早期使用较多,但它是和HTML混写的,并没有与HTML分离。
<!--在HTML中把事件处理函数作为属性执行JS代码--> <input type="button" value="按钮" onclick="alert('Lee');" /> <!--注意单双引号-->2.脚本模型的事件
由于内联模型违反了HTML与JavaScript代码层次分离的原则。为了解决这个问题,我们可以在JavaScript中处理事件。这种处理方式就是脚本模型。
var box=document.getElementById('Box'); //得到boxt对象 box.onclick=function(){ //匿名函数执行 alert('我是box'); };3.绑定事件
在JavaScript课程的学习中,我们掌握了很多使用的事件,常用的事件有:click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、change、select、submit、keydown、keypress、keyup、blur、focus、load、resize、scroll、error。那么,还有更多的事件可以参考手册中的事件部分。jQuery通过.bind()方法来为元素绑定这些事件。可以传递三个参数:bind(type,[data],fn),type表示一个或多个类型的事件名字符串;[data]是可选的,作为event.data属性值传递一个额外的数据,这个数据是一个字符串、一个数字、一个数组或一个对象;fn表示绑定到指定元素的处理函数。
//使用点击事件 $('input').bind('click',function(){ //点击按钮后执行匿名函数 alert('点击!'); }); //普通处理函数 $('input').bind('click',fn); //执行普通函数式无须圆括号 function fn(){ alert('点击!'); }
使用unbind删除绑定的事件
$('input').unbind(); //删除所有当前元素的事件
4.事件函数
为了使开发者更加方便的绑定事件,jQuery封装了常用的事件函数以便节约更多的代码。我们称它为简写事件。
JS事件包括鼠标事件,键盘事件,HTML事件
示例:
<!DOCTYPE html> <html> <head> <title>JQ入门</title> <script src="jquery-2.0.2.js"></script> <!--引入JQ文件--> </head> <body> <!--HTML部分--> <div style="width:200px;height:200px;background:red;"> <input type="text" value=""/> </div> <strong></strong> <script type="text/javascript"> //focus光标激活 $('input').focus(function (){ //当前元素触发 $('strong').html('123'); }); </script> </body> </html>
五、JQ动画入门
在以前很长一段时间里,网页上的各种特效还需要采用flash在进行。但最近几年里,我们已经很少看到这种情况了,绝大部分已经使用JavaScript动画效果来取代flash。这里说的取代是网页特效部分,而不是动画。网页特效比如:渐变菜单、渐进显示、图片轮播等;而动画比如:
故事情节广告、MV等等。
1.显示、隐藏
jQuery中显示方法为:.show(),隐藏方法为:.hide()。在无参数的时候,只是硬性的显示内容和隐藏内容。
<!DOCTYPE html> <html> <head> <title>JQ动画</title> <script src="jquery-2.0.2.js"></script> <!--引入JQ文件--> </head> <body> <input type="button" value="点我试试" style="margin:100px"/> <div id="box" style="width:300px;height:300px;margin:50px;background:red"></div> <script type="text/javascript"> var tag=1; $('input').click(function(){ //显示 if(tag%2==0) $('#box').show(); else $('#box').hide(); tag++; }); </script> </body> </html>2.滑动、卷动、收缩
jQuery提供了一组改变元素高度的方法:.slideUp()、.slideDown()和.slideToggle()。顾名思义,向上收缩(卷动)和向下展开(滑动)。
<!DOCTYPE html> <html> <head> <title>JQ动画</title> <script src="jquery-2.0.2.js"></script> <!--引入JQ文件--> </head> <body> <input type="button" value="点我向下展开" style="margin:100px"/> <input type="button" value="点我向上收缩" style="margin:100px"/> <input type="button" value="点我收缩" style="margin:100px"/> <div id="box" style="width:300px;height:300px;margin:50px;background:red"></div> <script type="text/javascript"> $('input').eq(0).click(function(){ $('#box').slideDown(); //向上收缩 }); $('input').eq(1).click(function(){ $('#box').slideUp(); //向上收缩 }); $('input').eq(2).click(function(){ $('#box').slideToggle(); //收缩 }); </script> </body> </html>
3.自定义动画
jQuery提供了几种简单常用的固定动画方面我们使用。但有些时候,这些简单动画无法满足我们更加复杂的需求。这个时候,jQuery提供了一个.animate()方法来创建
我们的自定义动画,满足更多复杂多变的要求。
同步动画,设置多个css的目标值
<!DOCTYPE html> <html> <head> <title>JQ动画</title> <script src="jquery-2.0.2.js"></script> <!--引入JQ文件--> </head> <body> <input type="button" value="点我变大" style="margin:100px"/> <input type="button" value="点我移动" style="margin:100px"/> <div id="box" style="width:50px;height:50px;margin:50px;background:red;position:relative"></div> <script type="text/javascript"> /*变大*/ $('input').eq(0).click(function(){ $('#box').animate({ 'width' :'300px', //目标宽度 'height' :'200px', //目标高度 'fontSize' :'50px', //目标字体大小 'opacity' :0.5 //目标透明度 }); }); /*移动*/ $('input').eq(1).click(function(){ $('#box').animate({ 'left' :'300px', //目标离浏览器窗口左边界的位置 'top' :'200px', //目标离浏览器窗口上边界的位置 },1000); //1000毫秒,即1秒,就是动画执行的时间,去掉会有默认的时间 }); </script> </body> </html>
列队动画,通过连缀的方法不停的调用animate
<!DOCTYPE html> <html> <head> <title>JQ动画</title> <script src="jquery-2.0.2.js"></script> <!--引入JQ文件--> </head> <body> <input type="button" value="点我实现列队动画" style="margin:100px"/> <div id="box" style="width:50px;height:50px;margin:50px;background:red;position:relative"></div> <script type="text/javascript"> $('input').click(function(){ $('#box').animate({ 'left' :'100px' },function(){ $('#box').animate({ 'top' :'100px' },function(){ $('#box').animate({ 'width' :'300px' }); }); }); }); </script> </body> </html>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- Web布局连载——两栏固定布局(五)
- JavaScript演示排序算法
- 2015-2016网页设计趋势分析 Web Design of Trends
- javascript实现10进制转为N进制数
- jQuery Ajax 跨域调用
- 移动端的长按事件
- jquery教程靠边站,一分钱不花让你免费学会jquery
- JQuery+Strusts1.x无刷新登录
- [div+css]晒晒最新制作专题推广页模板
- 最后一次说说闭包
- Ajax
- 盒子模型
- CSS选择器
- CSS样式优先权
- $.ajax()方法详解