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