一,jQuery初识
1.jQuery介绍
1.jQuery是一个轻量级的,兼容多浏览器的JavaScript库
2.jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能极大地简化JavaScript编程。它的宗旨就是:"Write less, do more."
2.jQuery的优势
1.一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。2.丰富的DOM选择器,jQuery的选择器用起来很方便,比如要找到某个DOM对象的相邻元素,JS可能要写好几行代码,而jQuery一行代码就搞定了,再比如要将一个表格的隔行变色,jQuery也是一行代码搞定。3.链式表达式。jQuery的链式操作可以把多个操作写在一行代码里,更加简洁。4.事件、样式、动画支持。jQuery还简化了js操作css的代码,并且代码的可读性也比js要强。5.Ajax操作支持。jQuery简化了AJAX操作,后端只需返回一个JSON格式的字符串就能完成与前端的通信。6.跨浏览器兼容。jQuery基本兼容了现在主流的浏览器,不用再为浏览器的兼容问题而伤透脑筋。7.插件扩展开发。jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应插件,并且用jQuery插件做出来的效果很炫,并且可以根据自己需要去改写和封装插件,简单实用。
3.jQuery使用
1.下载jQuery
http://jquery.com/download/
2.导入
1.script导入本地的文件
2.使用CDN
3.按照jQuery的语法使用就可以
注意:先导入再使用
4.jQuery对象
jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是 jQuery独有的。如果一个对象是 jQuery对象,那么它就可以使用jQuery里的方法:例如$(“#i1”).html()。$("#i1").html()的意思是:获取id值为 i1的元素的html代码。其中 html()是jQuery里的方法。相当于: document.getElementById("i1").innerHTML;虽然 jQuery对象是包装 DOM对象后产生的,但是 jQuery对象无法使用 DOM对象的任何方法,同理 DOM对象也没不能使用 jQuery里的方法。一个约定,我们在声明一个jQuery对象变量的时候在变量名前面加上$: var $variable = jQuery对像 var variable = DOM对象 $variable[0]//jQuery对象转成DOM对象拿上面那个例子举例,jQuery对象和DOM对象的使用: $("#i1").html();//jQuery对象可以使用jQuery的方法 $("#i1"l)[0].innerHTML;// DOM对象使用DOM的方法
二,jQuery基础语法
1.查找标签(非常非常多)
1.基本选择器(同CSS选择器)
//id选择器$("#id")//标签选择器$("tagName")//class选择器$(".className")//配合使用$("div.c1") //找到有c1 class类的div标签//所有元素选择器:$("*")//组合选择器$("#id, .className, tagName")
2.层级选择器(同CSS选择器)
//x和y可以为任意选择器$("x y"); //x的所有后代y (子子孙孙)$("x > y"); //x的所有儿子y (儿子)$("x + y"); //找到所有紧挨在x后面的y$("x ~ y"); //x之后所有的兄弟y
3.属性选择器
[attribute][attribute=value]// 属性等于[attribute!=value]// 属性不等于//实例$("input[type='checkbox']"); // 取到checkbox类型的input标签$("input[type!='text']"); // 取到类型不是text的input标签
4.表单筛选器
:text:password:file:radio:checkbox:submit:reset:button//例$(":checkbox") // 找到所有的checkbox//表单对象属性::enabled:disabled:checked:selected//例:找到可用的input标签$("input:enabled") // 找到可用的input标签//例:找到被选择中的option$(":selected") // 找到所有被选中的option
5.基本筛选器
:first // 第一个:last // 最后一个:eq(index)// 索引等于index的那个元素:even // 匹配所有索引值为偶数的元素,从 0 开始计数:odd // 匹配所有索引值为奇数的元素,从 0 开始计数:gt(index)// 匹配所有大于给定索引值的元素:lt(index)// 匹配所有小于给定索引值的元素:not(元素选择器)// 移除所有满足not条件的标签:has(元素选择器)// 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)//例$("div:has(h1)")// 找到所有后代中有h1标签的div标签$("div:has(.c1)")// 找到所有后代中有c1样式类的div标签$("li:not(.c1)")// 找到所有不包含c1样式类的li标签$("li:not(:has(a))")// 找到所有后代中不含a标签的li标签
//例:自定义模态框,使用jQuery实现弹出和隐藏功能自定义模态框
6.筛选器方法
1.往下找
1.next()
2.nextAll()
3.nextUntil()
$("#id").next()$("#id").nextAll()$("#id").nextUntil("#i2")
2.往上找
1.prev()
2.prevAll()
3.prevUntil()
$("#id").prev()$("#id").prevAll()$("#id").prevUntil("#i2")
3.找父标签parent()
1.parent()
2.parents()
3.parentsUntil()
$("#id").parent()$("#id").parents() // 查找当前元素的所有的父辈元素$("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。
4.儿子和兄弟元素:
$("#id").children();// 儿子们$("#id").siblings();// 兄弟们
5.find()
//查找:搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。$("div").find("p") //等价于$("div p")
6.filter()
//筛选:筛选出与指定表达式匹配的元素集合。这个方法用于缩小匹配的范围。用逗号分隔多个表达式$("div").filter(".c1") 等价于 $("div.c1") // 从结果集中过滤出有c1样式类的
补充方法:
.first() // 获取匹配的第一个元素.last() // 获取匹配的最后一个元素.not() // 从匹配元素的集合中删除与指定表达式匹配的元素.has() // 保留包含特定后代的元素,去掉那些不含有指定后代的元素。.eq() // 索引值等于指定值的元素
//例:左侧菜单左侧菜单示例
2.操作标签
1.操作标签的样式
1.操作Class
//样式操作addClass();// 添加指定的CSS类名。removeClass();// 移除指定的CSS类名。hasClass();// 判断样式存不存在toggleClass();// 切换CSS类名,如果有就移除,如果没有就添加。
2.直接操作style
//CSScss("color","red")//DOM操作:tag.style.color="red"//示例:$("p").css("color", "red"); //将所有p标签的字体设置为红色
3.事件
4.jQuery内置简单的动画