jQuery常用指令

jQuery

What's the jQuery?

主要分为两个大版本
    1.x         --          还支持ie6/ie7/ie8
    2.x         --          已经不支持低版本浏览器了

一般分为两种类型
    生产版本    --在开发阶段使用的,没有经过压缩,除了问题好调试;
        jquery-2.2.2.js

    发布版本    --网站发布之后使用的版本,经过压缩,可以优化网络传输;
        jquery-2.2.2.min.js

How to use jQuery?

步骤:
    1、引入jQuery的文件;
    2、写入口函数;
    3、写自己具体的逻辑实现;

    <script src="js/jquery-1.12.2.js"></script>
    <script>

    //入口函数的第一种写法
        $(document).ready(function () {

        });

    //入口函数的第二种写法
        $(function () {

        });         

    </script>

tips:script如果写在了body之上head之内,那么要让script自动执行,要加入 onload = function (){};
    script写在body标签的末尾则没有这个问题;

jQuery选择器

$(tagName);         获得的是一个伪数组;
$("#id");           获得的是一个伪数组,但里面只有一个元素;
$(".className");    获得的是一个伪数组;

jQuery操作样式

box.css(key,value);
    eg:
        $("#box").css("width",600);
        $("#box").css({"width":600,"height":300,"font-size":"20px"});

    tips:该操作有返回值,返回值为该对象;

jQuery操作class

addClass
removeClass
toggleClass
    eg:
        $("div").addClass("box box1");
        $("div").removeClass("box box1");
        $("div").toggleClass("box box1");

    tips:toggleClass(),如果该class值不存在则加入,存在则删除;
        添加删除操作都支持传入多个className;

jQuery节点操作

(1)、创建节点
    $("<标签名>"),创建标签,返回一个标签对象;
    eg:
        var p1 = $("<p>");
        var p1 = $("<p></p>");

(2)、插入节点
    $(parent).append(div);
    div.appendTo($(parent));    将标签对象加入到父元素中,作为最后一个子元素;(用的有点少)

    $(parent).prepend(div);     将标签对象加入父元素作为第一个子元素;

    $(selector).after(node);    将一个子元素(node)添加到另一个子元素(selector)后面;

    $(selector).before(node);   将node插入到selector之前;

(3)、删除节点
    $(selector).remove();       将selector及其子元素全部删除;

(4)、清空子节点
    $(selector).empty();        将selector的子元素全部删除,自身不删除;

(5)、克隆节点
    $(selector).clone(true of false);   
            true        复制已经绑定的事件处理程序;
            false       不复制已经绑定的事件处理程序;
        tips:返回克隆的对象;

    tips:
        var index = $(this).index;      可以直接获取该对象在父元素中的索引;
        $(parent).eq(index);    获取parent里面的索引为index的子元素,返回一个JQ对象;

        jQuery对象是指可以调用jQuery方法的对象;
        DOM对象指原生js获取到的对象,仅可调用js提供的DOM方法;

        通过jQuery获取的对象都为jQuery对象,
            this是DOM对象,因此不能直接在jQuery中使用,
            jQuery用  $(this) 来指代当前对象;

    tips:$(this).children(1);   其中的1指的是索引;
        $(this).children().eq(1);

动画

(1)、隐藏和显示动画
    $(selector).hide(speed,callback);
    $(selector).show(speed,callback);

        eg:
            $("#hide").click(function () {
                $("#box").hide(2000,function(){
                    console.log("hideFunction");
                });
            });

            $("#show").click(function () {
                $("#box").show(2000,function () {
                    console.log("showFunction");
                });
            });
(2)、淡入或淡出

      $("#box").fadeOut(2000,function () {
          console.log("淡入,第一个是速度");
      });


      $("#box").fadeIn(2000,function () {
          console.log("淡出");
      });

      $("#box").fadeToggle(2000,function () {
          console.log("淡入或淡出");
      }) 

      $("#box").fadeTo(2000,0.5,function () {
          console.log("淡入或淡出,第一个是speed,第二个是透明度");
      });

(3)、滑动
    向下滑动:$(selector).slideDown(speed,callback);
    向上滑动:$(selector).slideUp(speed,callback);

    向上或者向下滑动:$(selector).slideToggle(speed,callback);

(4)、多属性动画

    作用:控制多个属性同时改变的动画
    语法:
        $(selector).animate({params},speed,callback);
    参数:
        params          动画属性键值对
        speed           动画运行所需的毫秒数
        callback        动画完成时的回调函数

    eg:
        $("#hide").click(function () {
            $("#box").animate({
                "width":600,
                "height":100,
                "opacity":0.3
        },3000,function () {
                console.log("我会七十二变");
            })
        });

(5)、停止动画:
    $(selector).stop(stopAll,goToEnd);
    作用:将jQuery的动画停止;
    参数:
        stopAll
            true        清除所有的动画效果;
            false       仅停止当前活动的动画,动画序列中下一个的动画继续执行;
        goToEnd
            true            停止之后立刻到达结束的效果,并执行callback;
            false           停止之后不会立刻到达结束效果;

注册事件

(1)、eg:
    $(select).hover(function_1,function_2);
            tips:前一个函数为移入时候触发的函数,
                后一个函数为移出时候触发的函数;

(2)、on的方式注册事件
    $(selector).on(event,childSelector,data,callback);
        参数:
            event           事件类型                    必须
            childSelector   指定注册事件的子元素      可选(委托注册事件)
            data            传入callback的额外参数 可选
            callback        绑定的事件处理程序       可选

    tips:委托注册事件方式原理为事件冒泡,给父元素注册事件,
        委托给父元素指定的所有子元素都添加同一个事件,这时候如果继续添加了子元素,新的子元素仍然会有这个事件;

    eg:
        $("#father").on("click","#son",{msg:456},function(event){
            console.log("123");
            console.log(event.data.msg);
        });

        tips:{msg:456}为传入回调函数的额外参数,必须为对象字面量;
            在回调函数内部,传入的参数用event.data.msg调用;

(3)、bind
    $(selector).bind(event,data,callback);

    tips:与on没有什么区别,推荐用on;

(4)、delegate

$(parentSelector).delegate(childSelector,event,data,callback);
        参数:
            childSelector       子元素选择器
            event           事件类型
            data                额外参数
            callback            绑定的处理程序

    tips:委托方式注册事件,这种方式由父元素调用,给子元素添加事件;
        parentSelector即为父元素,childSelector为子元素,其他参数与on类似;
        仍然推荐用on的方式,简单直接;

eg:
    click可以用这种方式直接注册事件
        $(tabItem).click(function(){

        });

tips:其他事件,
    mouseenter,鼠标移入,移入瞬间触发;
    mouseover,鼠标悬停,会不断触发;

解绑事件

(1)、off
    $(selector).off(event,childSelector,callback);
        参数:
            event           事件类型;
            selector        指定的子元素;
            callback        解绑的处理程序;

(2)、unbind
    $(selector).unbind(event,callback);
        参数:
            event       事件类型
            callback    要解绑的处理程序

(3)、undelegate
    $(selector).undelegate(selector,event,callback);
        参数:
            selector        指定的子元素;
            event           事件类型;
            callback        解绑的处理程序;

        tips:解绑事件不需要对事件进行一一对应,方式通用;
            undelegate没有event则无法使用;
            off方法如果不传参将会删除所有注册过·的事件;
            推荐使用off方法解绑事件;

设置DOM元素属性

(1)、attr
    $(selector).attr(attribute,value);
        参数:
            attitute        属性;
            value           值;
        tips:如果只有一个参数是获取,有两个参数就是设置;

(2)、prop
    $(selector).prop(attribute,value);
        参数:
            attitute        属性;
            value           值;
        tips:如果只有一个参数是获取,有两个参数就是设置;

        tips:prop只支持标准属性,自定义属性不支持获取和设置;
            attr支持自定义属性;

(3)、val();
    获取表单属性的值;
    $(selector).val(value);
        参数:
            value       用于设置的值;
        说明:不传参数就是获取,传了参数就是设置;

获取和设置标签中的内容

(1)、text
        $(selector).text(content);
        参数:
            content         用于设置内容(文本的形式);

(2)、html
        $(selector).html(content);
        参数:
            content         用于设置内容(可以是标签);

    tips:不传参数为获取,传了参数为设置;
        分别是设置内部文本和内部的html标签;

    链式编程:
        $("#navBar").css("position","fixed").css("width","100%");

宽高设置、位置操作

(1)、宽高
    $(selector).width(number);
    $(selector).height(number);

        tips:国际惯例,不传参为获取,传参为设置;

(2)、位置操作
        获取或者设置某个元素的偏移量
            $(selector).offset({top:value,left:value});
            eg:
                $("#box").offset();
                tips:如果括号内不传参,则获取一个包含了top和left的对象;

        获取某个元素的位置
            $(selector).position();
                tips:获取的是定位下的top和left的值,以数组对象的形式存储;
                    只可获取,不可存储;
                    要设置其定位值,用css或offset;

(3)、操作滚动
        为指定元素绑定滚动事件的处理程序;
            $(selector).scroll();

            scrollTop();
            scrollLeft();

jQuery选择器

(1)、基本选择器
    标签选择器
        $(标签名)
            作用:选择所有同名标签;
            返回值:包含所有满足条件的DOM对象的jQuery对象,是一个类数组对象;

    class选择器
        $(.class)
            作用:选择指定class的页面上的标签;
            返回值:所有满足条件的DOM对象集合——jQuery对象,一个类数组对象
    id选择器;
        $(#id)
            作用:选择指定id的目标元素,只能获取到第一个id满足条件的元素;
            返回值:包含有一个DOM对象的jQuery对象,也是一个类数组对象;

    并集选择器
        $(selector1,selector2,...);
            作用:获取满足任意一个选择器的标签组成一个集合;
            返回值:包含满足任意条件的DOM对象的集合、jQuery对象、类数组对象;
            eg:
                $("span,div,p")


    交集选择器
        $(selector1selector2....)
            作用:选取满足所有选择器的标签元素;
            返回值:包含满足所有条件的DOM对象,得到的是jQuery对象、类数组对象;
            eg:
                $(".box.box1.box2") 


        tips:跟css中的选择器是一样的,只不过作为字符串传入了jQuery的选择器中;

(2)、层级选择器
    后代选择器
        $(selector1  selector2 ...)
            作用:选择类似css中后代选择器中选择的目标元素;
            返回值:满足条件的最后代子元素的DOM对象集合,是jQuery对象;
            eg:
                $(".box a");

    子代选择器
        $(selector>selector)
            作用:选取类似css中子的满足条件的代元素;
            返回值:满足条件的所有DOM对象集合,是一个jQuery对象;
            eg:
                $("li>.box")

    相邻选择器
        $(selector1+selector2)
            作用:选取selector1的下一个兄弟元素,同时要满足selector2的条件;
            返回值:jQuerr对象;
            eg:
                $(".li_1+.li_2")

    兄弟选择器
        $(selector1~selector2)
            作用:选取selector1后面的所有兄弟元素,并且要求满足selector2;
            返回值:jQuery对象;
            eg:
                $(".li_1~.li_4")

(3)、过滤(筛选)选择器
    $(selector:even)
        作用:选择满足selector的index为偶数的元素;
        eg:
            $("li:even")

    $(selector:odd)
        作用:选择满足selector的index为奇数的元素;
        eg:
            $("li:odd")

(4)、查找元素的方法
    parent方法
        $(selector).parent()
            作用:获取满足选择器的元素的父节点;
            返回值:jQuery对象;

    find方法
        $(selector).find(selctor2);
            作用:在满足selector1的元素的后代元素中查找满足selector2的后代元素;
            返回值:jQuery对象

        tips:find方法的效率是不高,所以少用,推荐children

    children方法
        $(selector1).children(selector2)
            作用:在满足selector1的子代元素中查找满足selector2的子代元素;
            返回值:jQuery对象;
            eg:
                $("#ul").children(".li_3")

    siblings方法
        $(selector1).siblings(selector2)
            作用:获取满足selector1的兄弟元素中满足selector2的兄弟元素
            返回值:jQuery对象

    next方法
        $(selector).next();
            作用:获取满足选择器元素的下一个元素节点;
            返回值:jQuery对象;
            eg:
                if($("?").next().length == 0);
                    判断该元素是否为最后一个;

    nextAll方法
        $(selector1).nextAll(selector2)
            作用:获取满足选择器1的元素之后的所有满足选择器2的元素;
            返回值:jQuery对象;

    prev方法
        $(selector).prev()
            作用:获取当前元素的上一个元素;
            返回值:jQuery对象;

    prevAll方法
        $(selector1).prevAll(selector2);
            作用:获取当前元素中之前的兄弟元素,同时满足selector2;
            返回值:jQuery对象;

    eq方法
        $(selector).eq(index);
            作用:获取满足selector的jQuery对象中第index个jQuery对象
            返回值:jQuery对象

    index方法
        1、  获取某个元素在兄弟元素之间的索引;
        2、 语法格式:
             $(seletor).index(elemnt);
                获取的是element在selector所选中的所有元素中索引;
                eg:
                    $(".hot").index($("#favorite"))
                tips:这时候,必须是hot和favorite两个条件都满足,
                    然后输出带有favorite的索引;

链式编程

在方法里,整个函数执行完毕之后,返回调用这个方法的对象,就可以一直点方法;
    eg:
        $("#box").css("width",200).css("height",200).css("background-color","blue");

    tips:链式编程函数执行后,函数返回值为this,因此可以再次调用;

隐式迭代

隐式:隐藏;
迭代:遍历;

很多jQuery方法都是通过隐式迭代的方式实现的
    $(“.box”).on(“click”,fun(){});

    jQuery提供了遍历对象的方法;
        each
            $(selector).each(function(index, element){

            })
            index:      代表的是当前元素在整个jq对象中的索引;
            element:    代表的是从jq对象中取出的当前元素,是一个DOM对象;

属性选择器

$([attribute]);
    作用:筛选包含attribute的所有元素

$([atttribute = value]);
    作用:筛选属性的值是满足条件的标签

$([attribute != value])
    作用:凡是具有该属性,但是属性值不为value的都被选中;

多库共存

在同一个页面中导入了多个库,会发生$符号冲突的问题。
jQuery要调用要使用$,其他的库要调用也可能会使用该库。

(1)、method_1
    使用jQuery代替。
    eg:
        jQuery(".box").on("click",function(){
            console.log("test");
        });

(2)、method_2
    使用自定义的变量名来代替$符。
    eg:
        var its = jQuery.noConflict()
        its(".box").ready(function(){
            console.log("test");
        });

jquery.color.js

jQuery.color插件是一个专门用于拓展jQuery的animate方法的js库文件;
原本jQuery是不具备让颜色渐渐改变的动画效果的,使用了它就可以了。

使用插件的步骤:
    1   先引入jQuery文件
            tips:必须在插件之前,因为jQuery.color是基于jQuery的拓展;
    2   引入jQuery.color的js文件
    3   写入口函数,$(function(){     });
    4   调用jQuery或者插件的API;

jquery.lazyload.js

jQuery.lazyload插件使一款用于实现图片懒加载的jQuery拓展库;
    其中使用data-original属性来存储每一张图片将来要加载的图片的路径,
    width和height属性也是必须的,否则可能jQuery.lazyload插件使用出问题;
    eg:
        <img class="lazyload" id="box" data-original="images/1.jpg" width="1280" height="800"/>

        $("#box.lazyload").lazyload();
            tips:在滚动到的时候才会加载该内容;

jquery-ui.js

jquery提供的一套默认UI,详情见API;

eg:
        //先实现拖动功能
    $(".drag-wrapper").draggable({handle:".drag-bar"});
        //实现缩放功能  -- 只能在底部缩放
    $(".resize-item").resizable({handles:"s"});
        //实现排序功能
    $(".sort-item").sortable({opacity:0.3});

    tips:CSS属性,cursor:pointer;  设置该项可以改变鼠标手势;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值