JQ整理

1.基本选择器:

    id      $("#id名")

    类名    $(".类名")

    标签名 $("标签名")

    属性名 $("[属性名=属性值]")

2.伪类选择器:

    first-child 第一个

    last-child  最后一个

    nth-child() 第几个

    empty  清空

3.筛选器:

    first  第一个

    last  最后一个

    eq(下标)  第几个

    gt(下标)  大于第几个

    lt(下标)    小于第几个

    odd        偶数个

    even      奇数个

4.表单元素选择:

    $(":text")  选中所有的文本框

    :password

    :reset

    :button

    :submit

    :checkbox

    :image

    :hidden

5.表单对象选择器:

    $("input:disabled")  选中禁用项的input

    $("input:enabled")    选中可用的input

    $("input:checked")    被选中的单选框或复选框

    $("option:selected")  被选中的下拉框

6.筛选器方法:

    lis.eq(1)  eq方法表示筛选到指定下标的元素

    lis.first()  从伪数组中找到第一个

    lis.last()  从选中的所有元素中筛选出最后一个

    last.prev()  筛选到元素的上一个

    prev.next()  筛选到元素的下一个

    last.siblings() 选中所有兄弟

    $("li").eq(2).prevAll()  前面所有的兄弟

    $("li").eq(2).nextAll()  后面所有的兄弟

    $("li:last").parent()    父元素

    $("li:last").parents()    找到所有的祖宗

    zuzong.find("ul")      从所有元素中找到指定的一个

    ul.children()          所有的子元素

7.事件:

    $("#btn").click(function(){

    点击事件

})

      $(window).load(function(){

        当前页面所有资源加载完成再加载本事件

})

      $(document).ready(function(){

          当前页面所有资源加载完成再加载本事件

})

    $(function(){

      当前页面所有资源加载完成再加载本事件

})

    on方法可以做事件委托 - 第二个参数是委托的元素

    $(".box").on("click",".small",function(){

        console.log(123);

})

    on方法可以给执行的函数传参 - on方法的第三个参数是一个数组,数组中的数据会绑定在事件对象上,作为data属性的值

    $(".box").on("click",".small",[1,2],function(e){

        console.log(e);

        jquery事件的事件对象,是没有兼容问题的

})

  二合一的事件:将鼠标移入和鼠标移出的事件作为一个事件 hover

    $(".box").hover(function(){

        移入的时候触发

        console.log("进来了");

    },function(){

        移出的时候触发

      console.log("出去了");

})

  解绑事件 off

    $("#btn").click(function(){

        $(".box").off("click",a);

})


  8.JQ的属性操作:

  获取属性 - 元素.attr(属性名)

  设置属性 - 元素.attr(属性名,属性值)

  删除属性 - 元素.removeAttr(属性名)

操作属性的另一个方法  -  prop

  prop操作的是元素的自带属性

  // 获取

  input.prop("name","username");

  // 设置

  div.prop("aaa",111); // 设置以后在标签上看不到

// 删除

div.removeProp("aaa")

  9.JQ的样式操作:

    获取样式 - 使用css方法  元素.css(css属性名), 无论是行内的、内联的、外联的都能获取到

    // var res = $("div").css("width");

    // 设置单个样式 - 使用css方法  元素.css(css属性名,属性值);

    $("div").css("border","10px solid #000");

    设置多个样式 - 使用css方法  元素.css({属性名:属性值,属性名:属性值,...});

10.JQ的类名操作:

    添加类名 addClass

    删除类名 removeClass

    添加和删除之间切换 toggleClass

    判断标签是否有某个类名 hasClass

11.JQ节点创作:

    添加到父元素中

      append:父元素.append(新元素) - 将子元素追加到父元素的末尾

      appendTo:新元素.appendTo(父元素) - 将子元素追加到父元素的末尾

      prepend:父元素.prepend(新元素) - 将子元素添加到父元素的开头

      prependTo:新元素.prependTo(父元素) - 将子元素添加到父元素的开头

    添加成兄弟元素

      before:旧元素.before(新元素) - 将新元素添加到旧元素的前面,形成兄弟关系

      insertBefore:新元素.insertBefore(旧元素) - 将新元素添加到旧元素的前面,形成兄弟关系

      after:旧元素.after(新元素) - 将新元素添加到旧元素的后面,形成兄弟关系

      insertAfter:新元素.insertAfter(旧元素) - 将新元素添加到旧元素的后面,形成兄弟关系

      替换-删除

        replaceWith:旧元素.replaceWith(新元素) - 使用新元素替换旧的元素

        relpaceAll:新元素.replaceAll(旧元素) - 新元素替换旧元素

        empty:父元素.empty() - 将父元素中的所有内容(不管是文本还是标签,不管是子元素还是后代元素)都清空

        remove:父元素.remove() - 将自己以及自己内容的所有内容都清空

      节点的复制

        元素.clone() - jquery的复制是将标签和里面的内容都复制出来了

        clone方法有参数,第一个参数是布尔值,true表示复制大盒子的事件

          clone方法的第二个参数是布尔值,表示是否复制子节点的事件

          第一个参数也是可选项,默认是false

          第二个参数是可选项,默认值是跟随第一个参数

          如果不复制父节点的事件,也是不能复制子节点事件的 - 要复制子节点的事件,必须复制父节点的事件

12.元素尺寸:

      获取设置的宽高:width()  height()

      获取包含内填充的宽高:innerWidth() innerHeight()

      获取包含边框的宽高:outerWidth() outerHeight()

      获取包含外边距的宽高:outerWidth(true) outerHeight(true)


      设置宽高

      $("div").width(200);

      $("div").height(300);

      $("div").innerWidth(200);

      $("div").innerHeight(300);

      $("div").outerWidth(200);

      $("div").outerHeight(300);

13.元素的位置:

      获取位置

        获取相对于浏览器的绝对位置-offset:元素.offset()

            返回一个包含left和top的对象

        获取相对于设置过定位的父元素的位置-position:元素.position()

            返回一个包含left和top的对象 - 位置不包含margin外边距

            如果父元素都没有设置过定位,获取到相对于html的位置

    设置位置:

        元素.offset(对象) - 这个对象必须包含left或top,值是一个数字

            设置的是一个目标值,元素,会操作left和top,如果没有定位会自动加一个相对定位

    滚动过的距离:

      滚动过的距离 scrollLeft()  scrollTop()

          这个方法要由$(window)

          如果传参数就是设置,不传参数就是获取

          在jquery中获取/设置滚动过的距离不存在兼容性问题,不管文档声明在不在,效果都一样

14.JQ请求方式:

    get请求的语法: $.get(url,参数,回调函数,期望返回的数据格式)

    post请求:$.post(url,参数,回调函数,期望返回的数据格式)

    ajax请求:$.ajax({url,参数,成功的回调函数,失败的回调函数,...})

              $.ajax({

                    url:"",

                    data:{

                          },

                      type:"",

                      dataType:"",

                      success:function(res){

                              },

                      error:function(){ 

                              },

                      cache:false // 是否要缓存,默认是true,是要缓存

                  });

      jsonp请求:

            $.ajax({

                  url:"",

                  data:{

                    },

              dataType:"jsonp",

              success:function(res){

                      console.log(res);

                  },

              jsonp:"cb", // 请求携带的回调函数的键 script src="demo.php?cb=fn"

              jsonpCallback:"fn" // 最终要调用的函数名称

            });

            function fn(res){

                console.log("这是函数,返回值是"+res);

                }

15.JQ的全局函数:

      // 1.全局中第一个ajax将要开始的时候会触发的函数

              $(window).ajaxStart(function(){

                    console.log("第一个ajax即将开始");

                  });

    // 2.全局中每个ajax将要send的时候会触发的函数

              $(window).ajaxSend(function(){

                      console.log("一个ajax即将发送");

                  });

      // 3.全局中每个ajax执行完成后会触发的函数

            $(window).ajaxComplete(function(){

                      console.log("一个ajax完成了");

                  })

      // 4.全局中每个ajax执行成功的时候会触发的函数

              $(window).ajaxSuccess(function(){

                        console.log("一个ajax成功了");

                    });

    // 5.全局中每个ajax执行失败的时候会触发的函数

              $(window).ajaxError(function(){

                        console.log("一个ajax失败了");

                  });

    // 6.全局中最后一个ajax请求完成后会触发的函数

              $(window).ajaxStop(function(){

                          console.log("最后一个ajax完成了");

                  });

16.JQ的控制权:

    jQuery.noConflict(); // 将$符号的使用权交出

    jQuery.noConflict(true); // 在方法中加true,会将jQuery这个关键字的使用权也交出,然后返回一个新的jQuery函数

17.JQ的扩展:

      1.给jquery对象使用

          $.fn.extend({

                fn:function(){

                console.log(123);

            }

          });

          $("body").fn();

      2.给jquery自己使用

          $.extend({

              fn:function(){

              console.log(123);

            },

          noRepeat:function(arr){

                var brr = [arr[0]];

              for(var i=1;i

              var flag = true;

              for(var j=0;j

                    if(arr[i]==brr[j]){

                      flag = false;

                      break;

                  }

              }

                if(flag){

                    brr.push(arr[i]);

                    }

                  }

                  return brr;

                }

            });

你可能感兴趣的:(JQ整理)