jquery初级教程

jquery:(库,插件,封装)

目标:使用
好处: 写的少,做的多
库: 别人写好,你拿来用
下载: http://jquery.com/

    版本:
        v1.x    亚非拉     兼容所有浏览器
        v2.x    欧美      高
        v3.x    
                jquery3.0-compat    ~~ 1.x      IE8+
                jquery3.0           ~~ 2.x      高

基本使用:

<b>公共特性:</b>
1)、赋值(事件) --> 函数调用(执行方法)
2)、window.onload=fn --> $(fn)
3)、obj.属性=值fn --> jqObj.属性(值fn)
4)、抓对象: getXxx--> $('CSS选择器')
5)、一件事可以有很多实现方法

jqObj.css()/show()/fadeInt/slideDown

6)、jq的动画其实都是队列动画
想插队 ,需要停止前面的动画

jqObj.stop().slideDown/slideUp/fadeIn/fadeOut()

7)、动画会卡顿:
推荐用 animate 不卡
其他的,要求不高可以用(! a--b>b-->a),快
8)、css 办不到的,jq可以
9)、jq很少报错
10)、jq很少循环,可以一堆操作
11)、修改样式的时候,单位没所谓:推荐加上单位(px)
12)、jq很少赋值,有的都是方法
jqObj.innerHTML=值 jqObj.html()
13)、在jq里面this都是原生
14)、jq的事件都是绑定
15)、jq也还是js写的,js办不到的,jq一样办不到
<b>动画:</b>

jqObj.animate({},{})    ~~  move({},{})

<b>事件:</b>

jqobj.事件名(fn)
jqObj.hover(fn1,fn2)
jqObj.toggle(fn1,fn2,fn3)
        ....

<b>选择器:</b> $('css选择器');
* 统配
#div1 ID
.active 类class
div tagname
#div .mini 后代
#div > p 一级子
#one , #two 分组

   属性:
        div[title]  找的是div,但要有属性名title
        div[title=test] 找的是div,但要有属性名title=test
        div[title^=te]  以什么开头
        div[title$=st]  以什么结尾
        div[title*=ss]  包含
    伪类:
        div:first       第0个
        div:last        最后1个
        div:eq(index)   第几个
        div:gt(n)       大于n
        div:lt(n)       小于n (不含n)
        div:odd         单
        div:even        双
        div:has(选择器)    找的是div,动的是div,含有末个选择器
        div:contains(文本)    含有某段文本的  

<b>样式:</b>
jqObj.css(属性,值) 修改
jqObj.css(属性) 获取

  • 一堆对象,获取的是第0个
    jqObj.css({属性1:值1,属性2:值2,..,..}) 批量修改

属性:
jqObj.attr(属性,值) 修改
jqObj.attr(属性) 获取

  • 一堆对象,获取的是第0个
    jqObj.attr({属性1:值1,属性2:值2,..,..}) 批量修改
  • 无法获取js自定义属性,冲着页面去的
    innerHTML obj.innerHTML=值
    jqObj.html(值) 修改
    jqObj.html() 获取

class操作: 不会覆盖原有样式
添加: jqObj.addClass(类名)
移除: jqObj.removeClass(类名)
判断有没有样式: jqObj.hasClass(类名) 返回true/false
*一堆判断,只要有一个有,就是个true

<b>选项卡:</b>
this 都是原生
原生对象.jq方法() 有问题
$(this) --> o o 包一下(目标:为了使用jq 的方法)

jqObj.index() 索引 jq对象自带索引

eq既是伪类,也是方法
$('div:eq(n)') jqObj.eq(n).xx()

自动播放选项卡:
定时器
取元素的高: jqObj.height()

  • 一堆的高,取的是第0个

<b>DOM:</b>
创建:$('html标签')
添加:

    b  到   a的过程
    jq                      js
    a.append(b)             a.appendChild(b)  内尾部
    b.appendTo(a)           -
    a.prepend(b)            a.insertBefore(a[0],b) 内头部
    b.prependTo(a)          -

    a.insertBefore(b)       -   前方  插入
    a.insertAfter(b)        -   后方  插入
    *** 操作的dom元素已存在(页面),所有的操作都是移动

删除:

    jq                  js
    jqObj.remove()      obj.parentNode.removeChild(obj)

    jqObj.parent()      obj.parentNode 父级

    jq表单元素.val()    取表单元素的value值
              .val(值)   修改

<b>事件:</b>
click/mouseover/mouseout/mousedown/mouseup/....
绑定:
老版本
bind/unbind 绑定/解绑定
jqObj.bind('事件名',函数)

新版本:
on / off ('事件名',函数)

    委托:
        未来jqObj.live('事件名',函数)      老
            事件加给了document 父定死了
        父.delegate('未来的子','事件名',函数) 新
            事件加给了 父 性能高 ,可以传参
    取消委托:
        未来jqObj.die('事件名',函数)       老
        父.undelegate('未来的子','事件名',函数)   新

    mouseover...    都会冒泡
    mouseenter/mouseleave/hover 不冒泡
        hover   推荐
阻止冒泡:
jq                  js
return false            事件对象.cancelbubble=true;

阻止默认:
jq                  js
return false        return false;
事件对象(ev):   无需做兼容

只阻止冒泡:
        ev.stopPropagation()
    只阻止默认:
        ev.preventDefault();



<b>大小:</b>

jq                                  js
宽、高
jqObj.height()/width()不带            getStyle    带着单位
jqObj.outerWidth()/outerHeight()    offsetWidth/offsetHeight

盒模型:    css宽+padding+border W3C
MS:         css宽+padding+border+margin  MS

<b>位置:</b>
jq                          js
jqObj.position().left       offsetLeft/top
jqObj.offset().left         getPos()

<b>链式操作:</b>
    对象.方法1().方法2().xx().oo()    连缀

    jqObj.stop().animate()          成功
    obj.split('-').reverse().join() 成功

    jqObj.html().xx()       //获取操作,常常会导致连缀
    obj.innerHTML.xx()

<b>连缀菜单思路:寻路</b>
    jqObj.next()    下一个兄弟
    jqObj.children('选择器')   找选择器指定的子
    jqObj.siblings() 兄弟们

<b>转换:</b>

js --> jq
obj   $(obj)

jq --> js
jqObj   jqObj.get(0)/jqObj[0]

<b>循环:</b>

    jqObj.each(function(index,element){
        index == 索引
        element == this == 循环的每一个对象
    });

$.browser.内核名称 true/undefined

$.browser.version
*** 没办法判断360

去除前后空格: $.trim(字符)

<b>插件:</b> 满足软件,库,的一些不足
插件网: http://www.jq22.com/

自定义:
    $.fn.方法名=fn   单个插件定义

    $.fn.extend({       批量定义
        方法名1:fn1,
        方法名2:fn2,
        方法名N:fnN,
    })

<b>幻灯片:</b>

    $('class').drag()
    $.fn.drag=function(){
        this    ==  jq对象
        this == 多个class this.li.操作  ,10个
        this.each(function(index,element){
            element 每一个幻灯片
            element.li 5个
        })
    }

例子:

    input:checked   选择已选中的 input
    文档滚动距离  $(document).scrollTop()
    窗口高度        $(window).height()
    div:not(:last)  所有的div,不含最后一个
    div:hidden  找的是隐藏div
    div:visible 找的是显示div

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

推荐阅读更多精彩内容

  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,316评论 0 2
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,155评论 0 1
  • jQuery基础 什么是JQ?一个优秀的JS库,大型开发必备JQ的好处?一简化JS的复杂操作二不再需要关心兼容性三...
    幺七阅读 932评论 0 2
  • 不为任何理由,不为任何利益,只想在一切都还那般清晰明了,清澈透明时,记下来自我心底的声音,算是献给自己并不算...
    低调行走的摩羯阅读 172评论 0 0
  • 宝儿、周元今年初认爱,近日宣布分手 31岁韩国天后宝儿(BoA),自14岁就以歌手的身份出道,至今已经出道17年。...
    灌南高手No1阅读 243评论 0 0