jquery总结

jQuery by gxj

需要下载的插件(markdown-preview/sublime-server/jQuery/autofilename)

+ ctrl+shift+p

+ install package

+ 找你需要的插件点击安装

资源库

jQuery简介/特点

* jQuery其实就是原生js写的一个包含了丰富多彩的方法的一个js库

* 注意jQuery的版本支持,新版已经不兼容老的浏览器。

* 引入jquery.js

* write less,do more!

* 隐式迭代

* 非常出色容错功能

* 非常出色的兼容性

* 链式操作

* jQuery方法读写合体

jQuery入口函数

    $(function(){


    })   

    $(document).ready(function(){

            //jq代码

    })



注意原生load与jquery加载的区别

原生的加载事件:当你的页面当中的html,css,js全部加载完成之后在执行load事件处理函数里面的代码。  
一个页面当中只允许出现一次window.onload事件  

jQuery的加载:当页面的结构加载完就立马执行jq代码,一个页面可以出现多次 
**jQuery判断一个元素是否存在:$(选择器).length是否为0**

jQuery选择器(所有的css选择器都可以用到jq里面)

jq选择器选择到的元素都以数组方式存储的

+ id选择器     $('#id名')      选中唯一的一个,也是数组

+ 类选择器      $('.类名')       选中的一组元素,数组

+ 标签选择器     $('标签名')       选中的一组元素,数组

选择器汇总

*               $("*")              所有元素
#id             $("#lastname")      id="lastname" 的元素
.class          $(".intro")         所有 class="intro" 的元素
element         $("p")              所有 <p> 元素
.class.class    $(".intro.demo")    所有 class="intro"class="demo" 的元素
:first  $("p:first")    第一个 <p> 元素
:last   $("p:last")     最后一个 <p> 元素
:even   $("tr:even")    所有偶数 <tr> 元素
:odd    $("tr:odd")     所有奇数 <tr> 元素
:eq(index)      $("ul li:eq(3)")    列表中的第四个元素(index 从 0 开始)
:gt(no)         $("ul li:gt(3)")    列出 index 大于 3 的元素 greater than
:lt(no)         $("ul li:lt(3)")    列出 index 小于 3 的元素 less than
:not(selector)  $("input:not(:empty)")  所有不为空的 input 元素

:header         $(":header")        所有标题元素 <h1> - <h6>
:animated       所有动画元素
:contains(text)     $(":contains('W3cSchool')")  包含指定字符串的所有元素
:empty              $(":empty")                 无子(元素、文本)节点的所有元素
:hidden             $("p:hidden")               所有隐藏的 <p> 元素
:visible            $("table:visible")          所有可见的表格

s1,s2,s3            $("th,td,.intro")            所有带有匹配选择的元素
[attribute]         $("[href]")         所有带有 href 属性的元素
[attribute=value]   $("[href='#']")     所有 href 属性的值等于 "#" 的元素
[attribute!=value]  $("[href!='#']")    所有 href 属性的值不等于 "#" 的元素
[attribute$=value]  $("[href$='.jpg']") 所有 href 属性的值包含以 ".jpg" 结尾的元素
:input      $(":input")         所有 <input> 元素
:text       $(":text")          所有 type="text" 的 <input> 元素
:password   $(":password")      所有 type="password" 的 <input> 元素
:radio      $(":radio")         所有 type="radio" 的 <input> 元素
:checkbox   $(":checkbox")      所有 type="checkbox" 的 <input> 元素
:submit     $(":submit")        所有 type="submit" 的 <input> 元素
:reset      $(":reset")         所有 type="reset" 的 <input> 元素
:button     $(":button")        所有 type="button" 的 <input> 元素
:image      $(":image")         所有 type="image" 的 <input> 元素
:file       $(":file")          所有 type="file" 的 <input> 元素
:enabled    $(":enabled")   所有激活的 input 元素
:disabled   $(":disabled")  所有禁用的 input 元素
:selected   $(":selected")  所有被选取的 input 元素
:checked    $(":checked")   所有被选中的 input 元素

注意并且选择器$(‘li:gt(1):lt(3)’),自左向右依次读,每读完一次,索引重新计算

jQuery对象和DOM对象相互转化

+ jQuery对象转化成DOM对象: $(选择器)[index]/$(选择器).get(index)

+ DOM对象转成jQuery对象:$(DOM对象)

jQuery选择方法

  • 获取父级元素
1. $(选择器).parent():找到父级元素,找到一个元素  

2. $(选择器).parents(过滤条件):找到祖先级,可以传递参数找到指定的祖先级元素  

3. $(选择器).closest(过滤条件):首先看自己是否满足条件,否则往上依次去找祖先级

4.$(选择器).offsetParent():获取定位父级  

5.$(选择器).parentsUntil():查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。  
  • 获取子代和后代的元素
1. $(选择器).children(过滤条件):找到指定的直接的孩子

2. $(选择器).find(过滤条件):找到孩子们可以找到孙子辈8
  • 获取同级的元素
1. 找到前面一个元素:$(选择器).prev();

2. 找到前面所有元素:$(选择器).prevAll(过滤条件);

3. 找到后面一个元素:$(选择器).next();

4. 找到后面所有元素:$(选择器).nextAll(过滤条件);

5. 找到所有同级元素:$(选择器).siblings(过滤条件);

6. 找到前面/后面同级元素直到过滤条件为止:$(选择器).prevUntil(过滤条件)/$(选择器).nextUntil(过滤条件);
  • 过滤方法
1. $(选择器).eq(index):找到选择器选中的第index+1个元素  

2. $(选择器).filter(过滤条件):找到指定过滤条件的那些元素  

3. $(选择器).not(过滤条件):除了过滤条件之外那些元素  

4. $(选择器).has(过滤条件):保留包含特定后代的元素,去掉那些不含有指定后代的元素。  

  • 特殊方法
add():把与表达式匹配的元素添加到jQuery对象中。这个函数可以用于连接分别与两个表达式匹配的元素结果集。  

addBack(): $('div').find('span').addBack();span div都被选中  

end():$('div').find('span').end():又选中了div  

jQuery获取大小/距离的方法

注意在jQuery读元素某些值的时候选中的是第一个元素,在给jquery对象写值的时候就是隐式迭代

1. $(选择器).width():元素的宽度

2. $(选择器).innerWidth():元素的宽度+padding左右

3. $(选择器).outerWidth():元素的宽度+padding左右+border左右

4. scrollTop() 滚动距离

5. offset():返回值是一个对象{left:*,top:*}获取元素相对文档边界的距离left top

6. position():返回值是一个对象{left:*,top:*}获取的是元素left top

以上方法可读可写
**获取可视区的大小:$(window).width()/height();文档的大小:$(document).width()/height();**

jQuery DOM操作

  • 获取内容
1. 获取/设置元素内所有内容:$(选择器).html()

2. 获取/设置元素内的文本内容:$(选择器).text()

3. 读取/设置表单元素的value值:$(选择器).val();  

val()特殊用法 $('input[type=checkbox]').val(['val1','val2'])把value值为val1和val2的复选框选中,select也可以用  

  • 样式操作

().css(background,red); ( 选 择 器 ) . c s s ( ′ b a c k g r o u n d ′ , ′ r e d ′ ) ; (选择器).css({设置多个});

$(‘div’).css(‘width’,’+=10px’);实现累加

  • 样式类操作尽量操作样式类,少直接操作css属性
addClass(一个或多个):添加一个或多个类名  
removeClass(不给参数全部移除,给了会移除指定的类):移除指定类名或者全部移除  
toggleClass(类名):切换是否认加上类名  

hasClass(class):检查当前的元素是否含有某个特定的类,如果有,则返回true
  • 属性操作
attr():读写合体 读取或者设置元素的属性,不光可以操纵自定义属性,还可以操纵元素自带的属性。  

prop():用法同上,只是在做单选或者多选按钮的时候一般用prop。  

移除属性:removeAttr(attr)/removeProp(attr)  

例子:全选反选的案例

获取索引值

$(选择器).index('标签名/类名...'):如果没有参数,那么得到是选择器选中的元素在所有同级的元素中所处的索引位置  
如果有参数那么得到的结果就是在参数中所处的索引位置

jq遍历的方法

each

$(选择器).each(function(i,el){}):i代表遍历到jq对象对应的索引值,el代表dom对象,遍历到谁就是谁  

$.each(arr,function(i,val){}) i下标,val代表值  
  • 动态创建
创建节点/元素:$('<div>内容</div>');
往元素末尾插入节点/元素:  

主动插入:$(选择器).append(创建的节点/'<div></div>'):选择器选中的元素末尾插入  

被动插入:创建的节点.appendTo($(选择器)):结果同上  

往元素头部插入节点/元素:  

主动插入:$(选择器).prepend(创建的节点/'<div></div>'):选择器选中的元素头部插入  

被动插入:创建的节点.prependTo($(选择器)):结果同上  

兄弟元素之后插入节点  

主动插入: $(选择器).after(节点):往选择器选中元素之后插入节点  

被动插入:节点.insertAfter($(选择器)) 结果同上  

兄弟元素之前插入节点  

主动插入: $(选择器).before(节点):往选择器选中元素之前插入节点  

被动插入:节点.insertBefore($(选择器)) 结果同上  
移除元素:$(选择器).remove();  

清空元素:$(选择器).empty();
替换节点:$(选择器).replaceWith($(选择器)):相当于剪切粘贴。  

$(选择器).replaceAll($(选择器)):结果同上,调用顺序相反

克隆节点:$(选择器).clone():只克隆内容,不克隆事件,否则不光克隆内容,克隆事件  
原生js:dom对象.cloneNode(true/'deep');如果不加参数,只克隆标签,否则里面内容也克隆
包裹节点:被包裹的.wrap(节点、jq对象)  

被包裹的.wrapInner(节点、jq对象)  

被包裹的.wrapAll(节点、jq对象)  

被包裹的.unWrap()  

data=[

{

    proName:'华为',

    price:2000,

    num:1000

},{

    proName:'苹果',

    price:4999,

    num:99

},{


    proName:'三星',

    price:2000,

    num:1
}

]
**动态创建表格,删除行**

事件处理

  • 原生的JS的所有的事件名称在jq里都有对应的方法
click() mouseover() mouseout() focus() blur()..... $(选择器).click(匿名函数体/有名函数名);
  • on 绑定事件
$(选择器).on(evName,fn);  

$(选择器).on({

    click:function(){},

    mouseover:function(){}
})  

$(选择器).off():可以所有事件绑定的方式。如果不写参数,那么所有事件全部移除,否则就移除指定的off('click mouseover');  

事件委托:$(选择器).on(evName,function(e){});  


+ one 只执行一次事件
$(选择器).one(evname,fn)

jQuery的事件对象

e.type:获取事件类型  

e.target:事件源  

e.currentTarget:相当于this  

e.keyCode/e.which:获取键盘的键值  

e.pageX/e.pageY:获取鼠标的坐标  

e.preventDefault():阻止默认行为  

e.cancelBubble=true/e.stopPropagation():阻止冒泡  

return false;既阻止冒泡又阻止了默认行为

动画

slideUp('fast/slow'/毫秒数,callBack)/slideDown()/slideToggle():上拉下拉
show(参数)/hide(参数)/toggle(参数):显示隐藏

fadeIn()/fadeOut()/fadeTo()/fadeToggle():淡入淡出

animate动画

params:一组包含作为动画属性和终值的样式属性和及其值的集合  

speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)  

easing:要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear""swing".  

fn:在动画完成时执行的函数,每个元素执行一次。  

$(选择器).animate({width:300,opacity:1...},2000,'linear/swing',callBack)  

运动形式扩展:easing.js,如果用了扩展,那么animate的参数至少要传3$(选择器).animate({},time,运动形式);这三个缺一不可

stop(参数)

插件扩展

**extend():$.extend/$.fn.extend()**
扩展jQuery的工具方法:  

$.extend({

    sum:function(arr){

        var n=0;

        $.each(arr,function(index,val){

            n+=val;

        })

        return n;

    }


});
扩展jQuery对象的方法:

$.fn.extend({

    gh:function(arr){

        var arr=arr || ['red','blue'];

        var children=this.children();

        children.filter(':odd').css('background',arr[0]);

        children.filter(':even').css('background',arr[1]);

    },

    zoom:function(){


    }


})

ajax

$.ajax()/$.post()/$.get()

$.post('请求地址','json',function(){});

$.ajax({

    url:请求的地址,

    data:发送到后台的数据,"name=John&location=Boston"/{name:'John',location:'Boston'}

    dataType:'xml/text/json/jsonp/script/html',

    type:get/post,

    success:function(msg){msg就是后台返回的数据},

    error:function(){}

})

trigger():自动触发元素身上的事件,甚至可以触发自定义事件。

art template 下载;

==================================================

轻量性能高的js模板语法;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值