jQuery基本方法

dom 对象与jQuery对象

  1. DOM 对象: 用原生js获取过来的对象就是DOM对象
    var myDiv = document.querySelector(‘div’); // myDiv 是DOM对象
    var mySpan = document.querySelector(‘span’); // mySpan 是DOM对象
    console.dir(myDiv);
  2. jQuery对象: 用jquery方式获取过来的对象是jQuery对象。 本质:通过$把DOM元素进行了包装
    $(‘div’); // $(‘div’)是一个jQuery 对象
    $(‘span’); // $(‘span’)是一个jQuery 对象

dom对象转变成jQuery对象

	//1.dom对象获取
	 var myvideo = document.querySelector('video');
    // 2.  jQuery对象转换为DOM对象
    $('video')

筛选

  1.  	$("ul li:first").css("color", "red");
         $("ul li:eq(2)").css("color", "blue");
         $("ol li:odd").css("color", "skyblue");
         $("ol li:even").css("color", "pink");
    
  2. // 注意一下都是方法 带括号

    $(function() {
      // 1. 父  parent()  返回的是 最近一级的父级元素 亲爸爸
      console.log($(".son").parent());
      // 2. 子
      // (1) 亲儿子 children()  类似子代选择器  ul>li
      // $(".nav").children("p").css("color", "red");
      // (2) 可以选里面所有的孩子 包括儿子和孙子  find() 类似于后代选择器
      $(".nav").find("p").css("color", "red");
    
  3. 兄弟元素siblings 除了自身元素之外的所有亲兄弟

      $("ol .item").siblings("li").css("color", "red");
       //  第n个元素
       var index = 2;
       // (1) 我们可以利用选择器的方式选择
       // $("ul li:eq(2)").css("color", "blue");
       // $("ul li:eq("+index+")").css("color", "blue");
       // (2) 我们可以利用选择方法的方式选择 更推荐这种写法
       // $("ul li").eq(2).css("color", "blue");
       // $("ul li").eq(index).css("color", "blue");
       // 判断是否有某个类名
       console.log($("div:first").hasClass("current"));
       console.log($("div:last").hasClass("current"));
    

    });

  4. 操作样式之css方法 单个属性修改使用键值对 多个属性修改使用对象方法

      $(function() {
      console.log($("div").css("width"));
      // $("div").css("width", "300px");
      // $("div").css("width", 300);
      // $("div").css(height, "300px"); 属性名一定要加引号
      $("div").css({
          width: 400,
          height: 400,
          backgroundColor: "red"
              // 如果是复合属性则必须采取驼峰命名法,如果值不是数字,则需要加引号
      })
    

    })

  5. 类方法

      $(function() {
      // 1. 添加类 addClass()
      // $("div").click(function() {
      //     // $(this).addClass("current");
      // });
      // 2. 删除类 removeClass()
      // $("div").click(function() {
      //     $(this).removeClass("current");
      // });
      // 3. 切换类 toggleClass()
      $("div").click(function() {
          $(this).toggleClass("current");
      });
    

    })
    6.效果显示与隐藏

    $(function() {
      $("button").eq(0).click(function() {
          $("div").show(1000, function() {
              alert(1);
          });
      })
      $("button").eq(1).click(function() {
          $("div").hide(1000, function() {
              alert(1);
          });
      })
      $("button").eq(2).click(function() {
              $("div").toggle(1000);
          })
          // 一般情况下,我们都不加参数直接显示隐藏就可以了
    

    });

7.滑动

      	$(function() {
        $("button").eq(0).click(function() {
            // 下滑动 slideDown()
            $("div").slideDown();
        })
        $("button").eq(1).click(function() {
            // 上滑动 slideUp()
            $("div").slideUp(500);
        })
        $("button").eq(2).click(function() {
            // 滑动切换 slideToggle()
            $("div").slideToggle(500);
        });
  1. 事件切换 hover 就是鼠标经过和离开的复合写法

       $(".nav>li").hover(function() {
           $(this).children("ul").slideDown(200);
       }, function() {
          $(this).children("ul").slideUp(200);
       });
    	 事件切换 hover  如果只写一个函数,那么鼠标经过和鼠标离开都会触发这个函数
        $(".nav>li").hover(function() {
            $(this).children("ul").slideToggle();
        });
    
  2. stop停止动画

        $(".nav>li").hover(function() {
            // stop 方法必须写到动画的前面
            $(this).children("ul").stop().slideToggle();
        });
    
  3. 淡入淡出

         $(function() {
         $("button").eq(0).click(function() {
             // 淡入 fadeIn()
             $("div").fadeIn(1000);
         })
         $("button").eq(1).click(function() {
             // 淡出 fadeOut()
             $("div").fadeOut(1000);
    
         })
         $("button").eq(2).click(function() {
             // 淡入淡出切换 fadeToggle()
             $("div").fadeToggle(1000);
    
         });
         $("button").eq(3).click(function() {
             //  修改透明度 fadeTo() 这个速度和透明度要必须写
             $("div").fadeTo(1000, 0.5);
    
         });
    

    11 自定义动画

     	$(function() {
         $("button").click(function() {
             $("div").animate({
                 left: 500,
                 top: 300,
                 opacity: .4,
                 width: 500
             }, 500);
         })
     })    
    

12 属性操作 自带属性prop 自定义属性attr

    	 $(function() {
        //1. element.prop("属性名") 获取元素固有的属性值
        console.log($("a").prop("href"));
        $("a").prop("title", "我们都挺好");
        $("input").change(function() {
            console.log($(this).prop("checked"));

        });
        // console.log($("div").prop("index"));
        // 2. 元素的自定义属性 我们通过 attr()
        console.log($("div").attr("index"));
        $("div").attr("index", 4);
        console.log($("div").attr("data-index"));
        // 3. 数据缓存 data() 这个里面的数据是存放在元素的内存里面
        $("span").data("uname", "andy");
        console.log($("span").data("uname"));
        // 这个方法获取data-index h5自定义属性 第一个 不用写data-  而且返回的是数字型
        console.log($("div").data("index"));
    })
  1. 获取设置元素内容 html() 获取设置元素文本内容 text() . 获取设置表单值 val()

     console.log($("div").html());
      // $("div").html("123");
    console.log($("div").text());
    $("div").text("123");
    
    console.log($("input").val());
    $("input").val("123");
    

14 遍历对象 $each(数据,function(index,ele) {}) 方法遍历元素

        var arr = ["red", "green", "blue"];
        $("div").each(function(i, domEle) {
            // 回调函数第一个参数一定是索引号  可以自己指定索引号号名称
            // console.log(index);
            // console.log(i);
            // 回调函数第二个参数一定是 dom元素对象 也是自己命名
            // console.log(domEle);
            // domEle.css("color"); dom对象没有css方法
            $(domEle).css("color", arr[i]);
            sum += parseInt($(domEle).text());
        })
        console.log(sum);
        // 2. $.each() 方法遍历元素 主要用于遍历数据,处理数据
        // $.each($("div"), function(i, ele) {
        //     console.log(i);
        //     console.log(ele);
        // });
        // $.each(arr, function(i, ele) {
        //     console.log(i);
        //     console.log(ele);
        // })
        $.each({
            name: "andy",
            age: 18
        }, function(i, ele) {
            console.log(i); // 输出的是 name age 属性名
            console.log(ele); // 输出的是 andy  18 属性值
        })
    })

15.创建 添加 删除 元素

  		$(function() {
        // 1. 创建元素
        var li = $("<li>我是后来创建的li</li>");
        // 2. 添加元素
        // (1) 内部添加
        // $("ul").append(li);  内部添加并且放到内容的最后面 
        $("ul").prepend(li); // 内部添加并且放到内容的最前面
        // (2) 外部添加
        var div = $("<div>我是后妈生的</div>");
        // $(".test").after(div);
        $(".test").before(div);
        // 3. 删除元素
        // $("ul").remove(); 可以删除匹配的元素 自杀
        // $("ul").empty(); // 可以删除匹配的元素里面的子节点 孩子
        $("ul").html(""); // 可以删除匹配的元素里面的子节点 孩子
    })
  1. 元素宽度

    	// 1. width() / height() 获取设置元素 width和height大小 
        console.log($("div").width());
        // $("div").width(300);
    
        // 2. innerWidth() / innerHeight()  获取设置元素 width和height + padding 大小 
        console.log($("div").innerWidth());
    
        // 3. outerWidth()  / outerHeight()  获取设置元素 width和height + padding + border 大小 
        console.log($("div").outerWidth());
    
        // 4. outerWidth(true) / outerHeight(true) 获取设置 width和height + padding + border + margin
    

17.获取位置

         // 1. 获取设置距离文档的位置(偏移) offset
        console.log($(".son").offset());
        console.log($(".son").offset().top);
        // $(".son").offset({
        //     top: 200,
        //     left: 200
        // });
        // 2. 获取距离带有定位父级位置(偏移) position   如果没有带有定位的父级,则以文档为准
        // 这个方法只能获取不能设置偏移
        console.log($(".son").position());
        // $(".son").position({
        //     top: 200,
        //     left: 200
        // });
    })

18.卷去头部scrollTop

	  $(document).scrollTop(100);
        // 被卷去的头部 scrollTop()  / 被卷去的左侧 scrollLeft()
        // 页面滚动事件
        var boxTop = $(".container").offset().top;
        $(window).scroll(function() {
            // console.log(11);
            console.log($(document).scrollTop());
            if ($(document).scrollTop() >= boxTop) {
                $(".back").fadeIn();
            } else {
                $(".back").fadeOut();
            }
        });
        // 返回顶部
        $(".back").click(function() {
            // $(document).scrollTop(0);
            $("body, html").stop().animate({
                scrollTop: 0
            });
            // $(document).stop().animate({
            //     scrollTop: 0
            // }); 不能是文档而是 html和body元素做动画
        })
    })
  1. 注册事件 on

    (1) on可以绑定1个或者多个事件处理程序
    $("div").on("mouseenter mouseleave", function() {
            $(this).toggleClass("current");
        });
        // (2) on可以实现事件委托(委派)
        // $("ul li").click();
        $("ul").on("click", "li", function() {
            alert(11);
        });
        // click 是绑定在ul 身上的,但是 触发的对象是 ul 里面的小li
        // (3) on可以给未来动态创建的元素绑定事件
           $("ol").on("click", "li", function() {
            alert(11);
        })
        var li = $("<li>我是后来创建的</li>");
        $("ol").append(li);
    })
    

20 事故解绑与只触发一次事件

 		事件解绑 off 
        // $("div").off();  // 这个是解除了div身上的所有事件
        $("div").off("click"); // 这个是解除了div身上的点击事件
        $("ul").off("click", "li");
        // 2. one() 但是它只能触发事件一次
        $("p").one("click", function() {
            alert(11);
        })

21.自动触发事件 click() trigger() triggerHandler()

		// 自动触发事件
        // 1. 元素.事件()
        // $("div").click();会触发元素的默认行为
        // 2. 元素.trigger("事件")
        // $("div").trigger("click");会触发元素的默认行为
        $("input").trigger("focus");
        // 3. 元素.triggerHandler("事件") 就是不会触发元素的默认行为
        $("div").triggerHandler("click");
        $("input").on("focus", function() {
            $(this).val("你好吗");
        });
        // $("input").triggerHandler("focus");
    })
  1. 对象拷贝 深拷贝与浅拷贝 extend

    	$.extend(target, obj);
        $.extend(targetObj, obj);
        console.log(targetObj); // 会覆盖targetObj 里面原来的数据
       1. 浅拷贝把原来对象里面的复杂数据类型地址拷贝给目标对象
      targetObj.msg.age = 20;
      console.log(targetObj);
     console.log(obj);
      深拷贝把里面的数据完全复制一份给目标对象 如果里面有不冲突的属性,会合并到一起 
       $.extend(true, targetObj, obj);
       // console.log(targetObj); // 会覆盖targetObj 里面原来的数据
       targetObj.msg.age = 20;
       console.log(targetObj); // msg :{sex: "男", age: 20}
       console.log(obj);
    
  2. 多库共存 自定义库

    $(function() {
        function $(ele) {
            return document.querySelector(ele);
        }
        console.log($("div"));
        // 1. 如果$ 符号冲突 我们就使用 jQuery
        jQuery.each();
        // 2. 让jquery 释放对$ 控制权 让用自己决定
        var suibian = jQuery.noConflict();
        console.log(suibian("span"));
        suibian.each();
    })
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值