jQuery是一个轻量级的JS库,是一个被封装好的JS文件,提供了更为简便的元素操做方式,jQuery封装了DOM。css
引入jQuery文件html
<scrtipt src='jquery-1.11.3.js'> </script>jquery
注意:引入必须放在其余jQuery操做以前。数组
jQuery对象是由jQuery对页面元素进行封装后的一种体现app
jQuery中所提供的全部操做都只针对jQuery对象,其余对象(DOM)没法使用ide
想要获取jQuery对象,则必须使用工厂函数$()函数
在$()中容许传递一个选择器/DOM对象做为参数,$()可以将选择器和DOM对象所有封装成jQuery对象再进行返回动画
例子:this
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery演示</title> </head> <body> <div id="main"> id是mian的div元素 </div> <button onclick="bClick()">获取元素</button> <script src="jquery-1.11.3.js"></script> <script> function bClick() { //经过jquery选择器获取id='main'的元素 var m = $("#main"); //设置元素的内容 m.html('动态设置的值'); console.log(m) } </script> </body> </html>
DOM对象和jQuery对象之间的转换spa
DOM对象不能使用jQuery提供的操做,反之一样。
一、将DOM对象转换为jQuery对象
语法:var 变量 = $(DOM对象);
注意:全部的jQuery对象在起名的时候,最好在变量前加$,主要用于和DOM对象的区分
例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="main"> 这是div元素 </div> <button onclick="bClick()">DOM - jQuery</button> <script src="jquery-1.11.3.js"></script> <script> function bClick() { // 经过DOM的操做,获得id为main的元素 var main = document.getElementById('main'); // 再将其转换为jQuery对象 var $main = $(main); $main.html('转换为JQ对象成功!') } </script> </body> </html>
二、将jquery对象转换为DOM对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="main"> 这是div元素 </div> <button onclick="JQtoDom()">jQuery-DOM</button> <script src="jquery-1.11.3.js"></script> <script> function JQtoDom() { // 使用jquery获得id为main的元素 var $main = $("#main"); // 再将其转换为DOM对象 // var m = $main[0]; var m = $main.get(0); m.innerHTML = '转换为DOM对象成功!' } </script> </body> </html>
获取页面上的元素们,返回值都是由jQuery对象所组成的数组
语法:$("选择器")
一、ID选择器
$("#id");
返回:返回页面中指定ID值的元素
二、类选择器
$(".className")
返回:页面中指定className的全部元素
三、元素选择器
$("element")
返回:页面中指定标记的全部元素
四、群组选择器 / 复合选择器
$("selector1,selector2,...")
返回:返回知足函数内全部选择器的函数们
一、$("selector1 selector2")
后代选择器
二、$("selector1>selector2")
子代选择器
三、$("selector1+selector2")
名称:相邻兄弟选择器
做用:匹配牢牢跟在selector1后面且知足selector2选择器的元素
例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="main"> <p id="p1">这是id为p1的元素</p> <p>这是普通元素</p> <p>这是普通元素</p> <p>这是普通元素</p> <p>这是普通元素</p> </div> <button onclick="bNB()">相邻兄弟选择器</button> <script src="jquery-1.11.3.js"></script> <script> function bNB() { $("#p1+p").css('background', 'yellow'); } </script> </body> </html>
四、$("selector1~selector2")
名称:通用兄弟选择器
做用:匹配selector1后面全部知足selector2选择器的元素
例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="main"> <p id="p1">这是id为p1的元素</p> <p>这是普通元素</p> <p>这是普通元素</p> <p>这是普通元素</p> <p>这是普通元素</p> </div> <button onclick="bNB()">通用兄弟选择器</button> <script src="jquery-1.11.3.js"></script> <script> function bNB() { $("#p1~p").css('color', 'red'); } </script> </body> </html>
过滤选择器一般都会配合着其余的选择器一块儿使用
一、:first
只匹配一组元素中的第一个元素
$("p:first")
二、:last
只匹配一组元素中的最后一个元素
三、:not("selector")
在一组元素中,将知足selector选择器的元素排除出去
四、:odd
匹配 偶数行 元素(奇数下标)
五、:even
匹配 奇数行 元素(偶数下标)
六、:eq(index) -- equals
匹配 下标等于 index 的元素
七、:gt(index)
匹配 下标大于 index 的元素
八、:lt(index)
匹配 下标小于 index 的元素
依托于html元素的属性来进行元素过滤的
一、[attribute]
做用:匹配包含指定属性的元素
ex:
div[id]:匹配具有id属性的div元素
二、[attribute=value]
做用:匹配attribute属性值为value的元素
ex:
input[type=text]
input[type=password]
三、[attribute!=value]
做用:匹配attribute属性值不是value的元素
四、[attribute^=value]
做用:匹配attribute属性值是以value字符开头的元素
ex:
p[class^=col]
五、[attribute$=value]
做用:匹配attribute属性值是以value字符结尾的元素
六、[attribute*=value]
做用:匹配attribute属性值中包含value字符的元素
一、:first-child
匹配属于其父元素中的首个子元素
二、:last-child
匹配属于其父元素中的最后一个子元素
三、:nth-child(n)
匹配属于其父元素中第n个子元素
四、jQuery操做DOM
基本操做
一、html()
做用:获取 或 设置 jQuery对象中的html内容
ex:
console.log($("#main").html());
$("#main").html("");
二、text()
做用:获取 或 设置 jQuery对象中的text内容
三、val()
做用:获取 或 设置 jQuery对象中的value值(表单控件)
四、属性操做
attr()
做用:读取 或 设置jQuery对象的属性值
ex:
$obj.attr("id");
获取 $obj 的id属性值
$obj.attr("id","main");
设置$obj对象的id属性值为main
removeAttr("attrName")
删除jQuery对象的attrName属性
ex:
$obj.removeAttr("class");
二、样式操做
一、attr()
$obj.attr("class","redBack");
二、addClass("className")
做用:将className 添加到元素的class值以后
ex:
$obj = $obj.addClass("c1");
$obj = $obj.addClass("c2");
连缀调用:
$obj.addClass("c1").addClass("c2");
三、removeClass("className")
若是无参的话,则清空类选择器
若是有参数的话,则删除对应的类选择器
ex:
$obj.removeClass("c1")
将c1类选择器从$obj移除出去
$obj.removeClass()
清空$obj的全部类选择器
四、toggleClass("className")
切换样式:
元素若是具有className选择器,则删除
元素若是没有className选择器,则添加
五、css("属性名")
$obj.css("width");
获取$obj对象的width属性值
六、css("属性名","属性值")
$obj.css("background-color","yellow");
设置$obj对象的background-color的属性值为yellow
七、css(JSON对象)
JSON对象:
是一种约束了格式的对象表现形式
JSON:JavaScript Object Notation
JSON对象的表示方式:
一、JSON对象必须使用{}括起来
二、使用键值对的方式来声明数据(表示属性和值)
三、全部的属性在使用时必须使用""括起来,值若是是字符串的话,也必须使用""括起来
四、属性和值之间使用:链接
五、多对属性和值之间使用 , 隔开
ex:
$obj.css({
"color":"red",
"font-size":"32px",
"float":"left"
});
一、children() / children("selector")
获取某jQuery对象的全部子元素 或 带有指定选择器的子元素
注意:只考虑子代元素,不考虑后代元素
二、next() / next("selector")
获取某jQuery对象的下一个兄弟元素 / 知足selector的下一个兄弟元素
三、prev() / prev("selector")
获取某jQuery对象的上一个兄弟元素 / 知足selector的上一个兄弟元素
四、siblings() / siblings(selector)
获取某jQuery对象的全部兄弟元素 / 知足selector的全部兄弟元素
五、find("selector")
查找知足selector选择器的全部后代元素
六、parent()
查找某jQuery对象的父元素
语法:$("建立的标记")
ex:
一、建立一对div
var $div = $("<div></div>");
$div.html("动态建立的div");
$div.attr("id","container")
$div.css("color","red");
二、建立一对div
var $div = $("<div id='container' style='color:red;'>动态建立的div</div>");
做用:将建立好的元素插入到网页中
一、内部插入
做为元素的子元素插入到网页中
$obj.append($new);
将$new元素插入到$obj元素中的最后一个子元素位置处(追加)
$obj.prepend($new);
将$new元素插入到$obj元素中的第一个子元素位置处
二、外部插入
做为元素的兄弟元素插入到网页中
$obj.after($new);
将$new元素做为$obj的下一个兄弟元素插入进来
$obj.before($new);
将$new元素做为$obj的上一个兄弟元素插入进来
$obj.remove();
将$obj元素删除出去
1、页面加载后的执行
相似于window.onload 但不一样于 window.onload
jQuery加载后执行的特色:
在DOM树加载完毕的时候就开始执行
$(document).ready( function(){
//页面的初始化操做
//DOM树加载完成后就开始运行
} );
$().ready( function(){
//页面的初始化操做
//DOM树加载完成后就开始运行
} );
$( function(){
//页面的初始化操做
//DOM树加载完成后就开始运行
} );
二、jQuery的事件绑定
方式1
$obj.bind("事件名称",事件处理函数);
ex:
$obj.bind("click",function(){
//事件的行为操做
console.log("... ....");
});
方式2
$obj.事件名称(function(){
//事件处理函数
});
ex:
$obj.click(function(){
//经过 this 来表示触发该事件的DOM对象
});
三、事件对象 - event
在绑定事件的时候,容许传递 event 参数来表示事件对象
$obj.bind("click",function(event){
//event表示当前事件的事件对象
});
$obj.click(function(event){
//event表示当前事件的事件对象
});
event的使用方式与原生JS事件中的event使用方式一致。
event.stopPropagation() : 阻止事件冒泡
event.offsetX:
event.offsetY:
event.target:获取事件源
一、基本显示 / 隐藏
语法:
$obj.show() / $obj.show(执行时间)
$obj.hide() / $obj.hide(执行时间)
二、滑动式显示 / 隐藏
语法:
显示:$obj.slideDown() / $obj.slideDown(执行时间)
隐藏:$obj.slideUp() / $obj.slideUp(执行时间)
三、淡入淡出式显示 / 隐藏
语法:
显示:$obj.fadeIn() / $obj.fadeIn(执行时间)
隐藏:$obj.fadeOut() / $obj.fadeOut(执行时间)