jQuery基础语法

1:jq对象与原生相互转换

  1:dom对象转换为jq对象

      1:直接获取就是jq对象

        $('video')

      2:我们已经使用原生ji获取Dom对象

        var myvideo = document.querySelector('video')

        $(myvideo)

2:jq对象转换Dom对象(两种方式)

      1: $('div')[index]    index是索引号

      2:$('div').get(index) index是索引号

3:jq常用API


  1:JQ基础选择器

    名称                用法                描述

    id选择器          $('#id')          获取指定id元素

    全选选择器        $('*')            匹配所有元素

    类选择器          $('.class')        获取同一类class的元素

    标签选择器        $('div')          获取同一类标签的所有元素

    并集选择器        $('div,p,li')      选取多个元素

    交集选择器        $('li.current')    交集元素

2:jq层级选择器

    名称            用法            描述

    子代选择器    $('ul>li')      使用>号,获取亲儿子层级元素;注意并不会获取孙子级

    后代选择器    $('ul li')      使用空格,代表后代选择器,获取ul下所有的li元素,包括孙子

3:jq设置样式

    $('div').css("属性","值")

    隐式迭代

    就是把所有匹配的元素内部进行循环便利,给每一个元素添加css这个方法

4:jq筛选选择器

语法              用法                    描述

:first          $('li:first')            获取第一个li元素

:last          $("lli:last")            获取最后一个li元素   

:eq(index)      $("li:eq(2)")            获取li元素中,索引号为2的元素,索引号从0开始

:odd            $("li:odd")              获取li元素中索引号为奇数的元素

:event          $("li:event")            获取li元素索引号为偶数的元素

:checked        $("li:checked")          被选中的li

5:jq筛选方法(重点)


  语法                      用法                          说明

  parent()                $("li").parent()                查找父级

  children(selector)      $("ul").children("li")          相当于$("ul>li") 查找最近一级(亲儿子)

  find(selector)          $("ul").find("li")              相当于$("ul li") 后代选择器

  siblings(selector)      $(".first").siblings("li")      查找兄弟节点,不包括自己本身

  nextAll([expr])        $(".first").nextAll()          查找当前元素之后所有的同辈元素

  prevtAll([expr])        $(".first").prevAll()          查找当前元素之前的所有同辈元素

  hasClass(class)        $("div").hasClass("protected")  检查当前元素是否包含某个特定的类,如果有返回true

  eq(index)              $("li").eq(2)                  相当于$("li:eq(2)")  index从0开始

  parents("selector")    $("li").parents("ul")          获取指定的祖先级元素

  6:  得到当前元素的索引号

      $(this).index()

  7:jq样式操作

    1:jq可以使用css方法来修改简单的样式操作;也可以操作类,修改多个样式

      1:参数致谢属性名,则是返回属性值

        $(this).css("color")

      2:参数是属性名,属性值,逗号分割。是设置一组样式,属性必须加引号,值如果是数字,可以不用跟单位和引号

        $(this).css("color","red")

      3:参数可以·是对象形式,方便设置多组样式,属性名和属性值用冒号隔开,属性可以不用加引号,如果是复合属性,必须采用驼峰命名法

        $(this).css({"color":"pink","font-size":"20px"})

  2:设置类样式操作方法

      作用等同于以前的classList,可以操作类样式,注意操作类里面的参数不要加点

      1:添加类

      $("div").addClass("cuttrnt")//相当于追加类名,不影响以前的类名

      2:删除类

      $("div").removeClass("current")

      3:切换类

      $("div").toggleClass("current")

      注意:原生js中className会覆盖元素原先的里面的类名

            jq中里面类操作只是对指定类进行操作,不影响原先的类名


  8:jq显示隐藏效果

      1:语法:show/hide([speed,[easing],[fn]])  (切换) toggle([speed,[easing],[fn]])

      2:显示参数

        1:参数都可以省略,无动画直接显示

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

        3:easing:用来指定切换效果,默认是swing(先快后慢),可用参数"linear"(匀速)

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

  9:滑动效果

      1:语法:(下滑)slideDown([speed,[easing],[fn]])  (上滑)slideUp([speed,[easing],[fn]])  (切换)slideToggle([speed,[easing],[fn]])

      2:显示参数

        1:参数都可以省略,无动画直接显示

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

        3:easing:用来指定切换效果,默认是swing(先快后慢),可用参数"linear"(匀速)

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

  10:事件切换

      hover([over],out)

      1:over:鼠标移到元素上要出发的函数(相当于mouseenter)

      2:out:鼠标移出元素要触发的函数(相当于mouseleave) 

      3:如果只写一个函数,那么鼠标经过和离开都会触发这个函数

11:停止动画stop

  语法:stop()

  1:stop() 方法用于停止动画效果

  2:stop()写道动画或者效果前面,相当于停止结束上一次的动画


12:淡入淡出效果

  1:语法:1:淡入fadeIn()  2:淡出  fadeOut()    3:淡入淡出切换fadeToggle()  4:修改透明度fadeTo([spead],opacity,[easing],[fn])

  2:显示参数

      1:参数都可以省略,无动画直接显示

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

        3:easing:用来指定切换效果,默认是swing(先快后慢),可用参数"linear"(匀速)

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

      2:修改透明度

          修改透明度fadeTo([spead],opacity,[easing],[fn])

          1:opacity透明度必须写,取值0~1

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

13:自定义动画

  1:语法

      animate(parms,[speed],[easing],[fn])

    2:参数

        1:params:想要更改的样式属性,以对象的形式进行传递,必须写,属性名可以不用带引号,如果是符合属性,则需要采用驼峰命名法。其余参数都可以省略

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

        3:easing:用来指定切换效果,默认是swing(先快后慢),可用参数"linear"(匀速)

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

14:jq属性操作

  1:设置或获取元素的固有属性值(元素本身自带的属性)

      prop()

      1:获取属性的方法

      prop("属性")

      2:设置属性语法

      prop("属性","属性值")

  2:设置或或获取元素的自定义属性

      attr()

      1:获取自定义属性值

        attr("属性")//类似原生getAttribute()

      2:设置属性语法

      attr("属性","属性值")//类似原生setAttribute()

  3:数据缓存data()

    data()方法还可以在指定的元素上存取数据,并不会修改dom元素结构,一旦页面刷新,之前存放的数据将会被移除

        $("div").data("uanme","andy")

        console.log($("div").data("uname"))

  4:内容文本值

      1:普通元素内容

        html()  相当于原生innerHtml

        语法

        html()        //获取元素内容

        html("内容")  //设置元素内容


      2:普通元素文本内容text()  (相当于原生innerText)


        语法

        text()              //获取元素的文本内容

        text("文本内容")    //设置元素的文本内容

      3:表单的值 val() (相当于原生的value)

      4:保留几位小数toFide("num")保留几位小数

15:jq元素操作

    1:便利

      语法1

      $("div").each(function(index,domEle){xxx})


      1:each()  方法遍历匹配的每一个元素。主要用于Dom处理。each每一个

      2:里面的回调函数有两个参数:index是每个元素的索引号,doEle是每个dom元素,不是jq对象

      3:所以要使用jq方法,需要$(doEle)

      语法2

      $.each(object,function(index,element){xxx})

      1:$.each()方法可用于便利任何对象,主要用于数据处理,比如数组,对象

      2:里面函数两个参数:index每个元素索引号,element便利内容

  2:创建元素

    语法

      $("<li></li>")

  3:添加元素

    1:内部添加

      element.append("内容")  把内容放到匹配元素的内部的最后面,类似原生的appendChild

      element.prepend("内容") 把内容放到匹配元素的前面

    2:外部添加


      element.after("内容")    //把内容放到目标元素的后面

      element.before("内容")  //把内容放入目标元素前面

      注意:内部添加元素,生成之后是父子关系

            外部添加元素,生成之后是兄弟关系

  4:删除元素

      1: element.remove() //删除匹配元素(本身)把自己本身删除

      2: element.empty()  //删除匹配元素集合中所有的子节点

      3:element.html("")  //清空匹配元素的元素内容

16:jq尺寸


  语法                              用法

  width()/height()              取得匹配元素宽度和高度值只算width/height

  innerWidth()/innerHeight()    取得匹配元素的宽度和高度值包含padding

  outerWidth()/outerHeight()    取得匹配元素的宽度和高度值包含padding,border

  outerWidth(true)/outerHeight(true)    取得匹配元素的宽度和高度值包含padding,border,marght

  1:以上参数为空,则是获取相应的值,返回的是数字型

  2:如果参数为数字,则是修改相应值

  3:参数可以不必写单位

17:jq的位置

  位置主要有三个:offset(),position(),scrollTop()/scrollLeft()

  1:offset()设置或获取元素偏移

    1:offset()方法设置或返回元素相对于文档的偏移坐标,跟父级没有关系

  2:position()获取元素偏移

    1:position() 方法用于返回被选元素相对于带有定位的父级偏移坐标,如果父级内有定位,则以文档为标准

  3:scrollTop()/scrollLeft()设置或获取元素被卷曲的头部和左侧

    1:scrollLeft()方法设置或返回被选元素被卷曲的头部

  4:带有动画的的返回顶部

    1:核心原理:使用animate动画返回顶部

    2:animation动画里面有个scrollTop属性,可以设置位置

    3:但是是元素做动画,因此得把document文档改变成$("body,html"),animate({scrollTop:0})

18:

  1:jq事件注册

    on()

    on()方法优势1:

    1:可以绑定多个事件,多个事件处理程序

    $("div").on({

      mouseover:function(){},

      mouseout:function(){},

      click:function(){}

    })

      如果事件处理程序相同

  $("div").on("mouseover mouseout",function(){

      $(this).toggleClass("current")

  })

  2:on()优势2

    可以事件委派操作,事件委派得定义就是把原来给子元素身上得事件绑定给父元素身上,就是把事件委派给父元素

    $("ul").on("click","li",function(){

      alert("helloword")

    })

    3:on()优势3

    动态创建的元素,click()没有办法绑定事件,on()可以给动态生成的元素绑定事件

2:解绑事件

  off()解绑事件 

  off()方法可以通过on()方法添加的事件处理程序

  1:$("div").off() //解除div身上所有的事件

  2:$("div").off("click") //解除div身上click事件

  3:$("ul").off("click","li")//解除事件委托

3:只触发一次

  one()只触发一次事件

4:自动触发事件 trigger()

    1:简写形式

      element.click()

    2:自动触发模式

    element.trigger("要触发的事件")

    3:自动触发模式  注意,这种不会触发元素的默认行为

    element.triggerHandler("要触发的事件")

19:事件对象

  element.on(event,function(e){})

  组织默认行为:e.preventDefault() 或者return false

  组织冒泡:    e.stopPropagation()

20:对象拷贝

  语法

  $.extend([deep],target,object,[objectN])

  1:deep:如果为true为深拷贝,false浅拷贝

  2:target要拷贝的第一个对象

  3:object:待拷贝的第一个对象

  4://这种方法会覆盖targect原来的数据

  5:浅拷贝把被拷贝对象负责的数据类型中地址拷贝给目标对象,修改目标对象会影响目标对象

22:多库共存

  解决方案:

        1:把里面$符号统一改为jQuery  比如jQuery("div")

        2:jQ变量规定新名称  var xx = $.noConflict()

23:插件

  jQ常用插件网站

  1:Jq插件库  http://www.jq22.com

  2:jq之家    http://www.htmleaf.com/

  3:全屏滚动 fullpage.js  中文网站  http://www.dowebok.com.demo/2014/77/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQue...
    lyf_god阅读 459评论 0 0
  • (续jQuery基础(2)) 四、动画篇 第1章 动画基础隐藏和显示 (1)隐藏元素的hide方法 让页面上的元素...
    凛0_0阅读 455评论 0 6
  • jQuery 能做什么? jQuery is a fast, small, and feature-rich Ja...
    Tuuu阅读 353评论 0 1
  • 第1章 动画基础隐藏和显示 1-1 jQuery中隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置c...
    mo默22阅读 736评论 0 8
  • 一、基础语法: $(selector).action() 文档就绪事件 这是为了防止文档在完全加载(就绪)之前运行...
    讲武德的年轻人阅读 267评论 0 0