jquery简介
javascript的缺点
- 代码比较麻烦,需要遍历,可能还需要嵌套
- 找到对象麻烦,方法少,还长
- 会有兼容性问题
- js注册事件,会被覆盖,addEventListener
jquery的第一个程序
1 | //1.引入文件 |
什么是jquery?
jquery就是一个轻量级的js库,它有丰富的api可供调用,学习jquery其实就是学习jquery里的api。
jquery的版本问题
1.x,2.x,3.x版本的区别
1.x版本和2.x版本是同步发布的,但1.x版本支持ie678,2.x不支持;且两个版本不再更新
3.x不兼容ie678,且3.x版本还在更新;min版与非min版的区别
非min版主要用于学习与开发,有注释,且可阅读性较强;min版是压缩版,没有注释,容量较小,用于生产环境。
jquery的入口函数
1 | //jquery入口函数的两种写法 |
注意:
- jquery的入口函数要比js的入口函数执行的早一些
- jquery的入口函数会等待页面加载完成才执行,但是不会等待图片的加载
- js的入口函数会等待页面加载完成,并且等待图片加载完成才开始执行
DOM对象(js对象)与jq对象
什么是DOM对象(js对象):使用js的方式获取到的元素就是js对象(dom对象)
var cloth = document.getElementById("cloth"); cloth.style.backgroundColor = "pink";
什么是jq对象:使用jq的方式获取到的元素就是jq对象
var $li=$("li"); $li.text("I Change the context.");
jq对象与js对象的区别:js对象不能调用jq对象的方法
jq对象与js对象的联系
jq对象其实就是js对象的一个集合,伪数组,里面存放了一大堆js对象(宏观上)DOM对象与jq对象的转换。
dom2jq:var cloth = document.getElementById("cloth"); $(cloth).text("hehe");
jq2dom:$("li")[0].innerText = "hehe";
或$("li").get(0).innerText = "haha";
注意:$其实就是一个函数,以后用时记得跟小括号,参数不同,功能就不同,有3种用法:(另: $==jQuery
)
- 参数是一个function,入口函数
- 参数是dom对象,把dom对象转换成jquery对象
- 参数是一个字符串,根据前缀找对应类别的对象
选择器
jquery选择器是jquery提供的一组方法,用来获取页面中的元素。其返回的是jqueryduixiang,且兼容了css1到css3的所有选择器(css怎么写,我们就可以怎么写),并且jquery还添加了很多更加复杂的选择器。
基本选择器与层级选择器
1
2
3
4
5$("#id").css("backgroundColor","red");//id选择器的样式设置
$("#id,.green").css("backgroundColor","red");//并集,id为id或class为green的标签都会被设置
$("li.green").css("backgroundColor","red");//交集,li标签下的green标签样式会被设置
$("li>p").css("backgroundColor","red");//子代选择器,li标签下的子代中的p标签样式会被设置
$("li p").css("backgroundColor","red");//后代选择器,li标签下的所有p标签样式会被设置mouseenter与mouseover
mouseenter是jquery提供的鼠标事件,触发率比mouseover精准,建议使用;其中mouseleaving与mouseenter搭配,mouseover与mouseout搭配过滤选择器:这类选择器都带冒号,(如 li:first 为第一个li标签)
筛选选择器
与过滤选择器类似,但是用法不同,筛选选择器主要是方法
名称 | 用法 | 描述 |
---|---|---|
children(selector) | $(“ul”).children(“li”) | 相当于$(“ul>li”) ,子类选 择器 |
find(selector) | 同上 | 相当于后代选择器 |
siblings(selector) | 同上 | 查找兄弟节点,但不包括自己 |
parent() | 同上 | 查找父母节点 |
eq(index) | 同上 | 查找下标为index的节点 |
next() | 同上 | 查找下一个兄弟节点 |
prev() | 同上 | 查找上一个兄弟节点 |
index() | 同上 | 返回当前兄弟节点中的下标 |
操作方法
css操作
1 | //修改单个样式 |
class操作
1 | //添加类 |
操作属性
1 | ////attr |
动画
1 | ////////使用方法均为如:$("ul").xxx([time]); |
操作节点
1 | ////创建节点 |
特殊的属性操作
1 | /////无参数时获取属性,有参时设置属性 |
jquery插件
jquery插件是对jquery进行功能上的优化的一项技术。使用方法为在引入jquery文件后,再引入jquery插件。
jquery.color.js
提供了一些关于颜色的功能,如颜色动态渐变等
jquery.lazyload.js
可以为网站提供懒加载功能,即显示时才加载。用法如下
1 | <img class="lazy" data-original="01.gif" /> |
ajax的使用
ajax:异步请求,浏览器地址栏不变,进行局部刷新
jquery的ajax
ajax常用的请求有六种,可分为三层
- 第一层:
$.ajax(uel[,settings]);
//最底层ajax请求,编写最复杂,完成功能最全 - 第二层:
$.load(url[,data][,callback]);$.get(url[,data][,fn][,type]);$.post(url[,data][,fn][,type]);
//开发中常用的3个 - 第三层:
$.getJSON(url[,data][,fn]);$.getScript(url[,callback]);
//高级开发
1 | ////getJson()与getScript()方法 |