概念
一个JavaScript框架,简化JS开发
Javascript框架:本质上就是一些js文件,封装了js的原生代码
快速入门
步骤
下载JQuery
- jquery-xxx.js 与 jquery-xxx.min.js 的区别
- Jquery-xxx.js : 开发版本【给程序员看,有良好的缩进和注释】
- Jquery-xxx.min.js:生成版本。程序中使用,没有缩进,体积小,加载快
- jquery-xxx.js 与 jquery-xxx.min.js 的区别
- 导入JQuery的js文件
- 使用
var $divs = $(“div”);
alert($divs); //也可以当作数组使用
JQuery对象和JS对象的区别
1-JQ对象在操作时,更加方便
2-JQ对象和js对象方法不通用
3-两者相互转换
jq —> js : jq对象[索引] 或者 jq对象.get(索引)
js —> jq : $(js对象)
选择器
筛选具有相似特征的元素(标签)
基本语法
- 事件绑定
//1-获取b1按钮
$(“#b1”).click(function () {
alert(“111”);
})
入口函数
//jquery入口函数(dom文档加载完毕后执行该函数中的代码)
$(function () {
...
});
/* window.onload 和 $(function) 区别
window.onload只能定义一次,后面的会覆盖前面的
$(function)可以定义多次
*/
样式控制
$(function () {
// $("#div1").css("background-color","red");
$("#div1").css("backgroundColor","pink")
})
分类
基本选择器
标签选择器(元素选择器
- 语法: $(“html标签名”) 获得所有匹配标签名称的元素
- id选择器
- 语法:$(“#id的属性值”)获得与指定id属性值匹配的元素
- 类选择器
- 语法:$(“.class的属性值”) 获得与指定的class属性值匹配的元素
并级选择器:
后代选择器
- $(“A B”) 选择A元素内部所有的B元素
子选择器
属性名称选择器
- $(“A[属性名]”) 包含指定属性的选择器
- 属性选择器
- $(“A[属性名=’值’]”) 包含指定属性等于指定值的选择器
- 值以xx开始:属性名^=xx
- 值以xx结束: 属性名$=xx
- 值包含xx: 属性名*=xx
复合属性选择器
首选择器
- :first
- 尾选择器
- :last
- 非选择器
- :not(选择器)
- 偶数选择器
- :even 从0开始计数
- 奇数选择器
- :odd 从0开始计数
- 等于索引选择器
- :eq(index) 等于指定索引
- 大于索引选择器
- :gt(index) 大于指定索引
- 小于索引选择器
- :lt(index) 小于指定索引
标题选择器
可用元素选择器
- :enabled -> $(“input[type=’text’]:enabled”)
- 不可用元素选择器
- :disabled
- 选中选择器
- :checked -> 单选/复选框选中的元素
选中选择器
html():获取/设置元素的标签体内容
- 11 -> 11
- text(): 获取/设置元素的标签体纯文本内容
- 11 -> 11
-
属性操作
通用属性操作
- attr():获取/设置元素的属性
- removeAttr():删除属性
- prop():获取/设置元素的属性
- removeProp():删除属性
- attr和prop的区别
- 如果操作的是元素的固有属性,则建议使用prop
- 如果操作的是自定义的属性,则建议使用attr
对class属性的操作
append() :父元素将子元素追加到末尾
- 对象1.append(对象2) : 将对象2添加到对象1元素内部,并且在末尾
- prepend():父元素将子元素添加到开头
- appendTo():
- 对象1.appendTo(对象2):将对象1添加到对象2内部(和append方向相反)
- prependTo()
- after() : 添加元素到元素后边
- 对象1.after(对象2):将对象2添加到对象1后边 【兄弟关系】
- before():
- insertAfter() :和after和before一样 只是方向不同
- insertBefore()
- remove() : 移除元素【自杀】
- 对象.remove() 将对象删除
- empty() 清空元素的所有后代元素,保留当前对象和属性节点
动画
-
默认显示和隐藏
show([speed,[easing],[fn]])
- 参数:
- speed:动画速度,选项【”slow”,”normal”,”fast”】或毫秒值(如:1000)
- easing:用来指定切换效果,默认’swing’,可用参数’linear’
- swing: 慢-快-慢
- linear 匀速
- fn:动画完成时执行的函数,传递function对象
- 参数:
- hide([speed,[easing],[fn]])
-
滑动显示和隐藏
slideDown([speed,[easing],[fn]])
- slideUp([speed,[easing],[fn]])
slideToggle([speed,[easing],[fn]])
淡入淡出显示和隐藏
fadeIn([speed,[easing],[fn]])
- fadeOut([speed,[easing],[fn]])
fadeToggle([speed,[easing],[fn]])
遍历
js的遍历方式
- for(初始值;循环结束条件;步长)
jq的遍历方式
jq对象.each(callback)
citys.each(function(index,element){ //alert(this.innerHTML); //alert(index+":"+element.innerHTML); alert(index+":"+$(element).html()); });
$.each(object,[callback])
$.each(citys,function(){ alert($(this).html(); });
for..of: 需要高版本
for(li of citys){ alert($(li).html()); }
事件绑定
jquery标准的绑定方式
- jq对象.事件方法(回调函数);
$("#name").click(function(){ alert('回调函数'); }); //click -> 事件方法
- jq对象.事件方法(回调函数);
on绑定事件/off接触绑定
- jq对象.on(“事件名称”,回调函数)
- jq对象.off(“事件名称”)
$("#btn").on("click",function(){ alert('..'); }) $("#btn2").click(function(){ $("#btn").off("click"); });//用btn2来解除btn的事件,如果off不传递事件名,则清除所有
事件切换:toggle
- jq对象.toggle(fn1,fn2…)
- 当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2…..
- jq对象.toggle(fn1,fn2…)
案例
插件
增强jquery功能
- 实现方式:
- $.fn.extend(object)
- 增强通过JQuery获取的对象的功能 $(“#id”)
- $.extend(object)
- 增强JQuery对象自身的功能 $/JQuery
- $.fn.extend(object)
$.fn.extend({
//定义了一个check()方法,所有的jq对象都可以调用该方法
check:function(){
alert(123);
}
});
$(function(){
//获取按钮
$("#btn-check").check();
//该方法调用之前定义的check
});
第二种全局方法
$.extend({
max:function(a,b){
return a>=b? a:b;
}
})
//调用全局方法
var max = $.max(4,3);