zoukankan      html  css  js  c++  java
  • JQuery

    JQuery

    一、概念

    JQuery是一个优秀的JavaScript代码库(框架),用于简化JavaScript和HTML的操作(简化文档操作),宗旨是“Write less, Do more”。

    JQuery或者其他的一些JavaScript框架的本质,就是一些JavaScript文件,在文件里面封装了一些原生的JavaScript代码,简化操作。

    二、使用步骤

    1. 下载jQuery
    2. 导入jQuery的js文件
    3. 使用

    三、js对象与jQuery对象的转换

    由于js对象与jQuery对象是不同的,两者之间的方法并不是通用的,有时候为了使用js对象或者jQuery对象的方法,要对两者进行转换。

    1. jQuery对象------>js对象:jQuery对象[索引]或者jQuery.get(索引)

    2. js对象------>jQuery对象:$(js对象)

      <script>
          var divs = document.getElementsByTagName("div");
          var $divs = $("div");//jQuery的方法获得所有名为div的元素
      
          alert(divs.length);// 当做数组使用
          alert($divs.length);// 当做数组使用
      
          for (var i = 0; i < divs.length; i++) {
              divs[i].innerHTML = "aabbcc";
          }
      
          $divs.html("112233");// 设置所有的元素的标签体的内容
      
      
          $(divs).html("fffggg");/*js对象------>jQuery对象:$(js对象)*/
          
          // jQuery对象------>js对象:jQuery对象[索引]或者jQuery.get(索引)
          $divs.get(0).innerHTML = "hhjjj";
          $divs[1].innerHTML = "hhjjj";
      
      </script>
      

    四、jQuery的选择器

    选择器是为了筛选具有相似特征的元素(标签)

    前置知识

    1. 事件绑定:click()、submit()、blur()、mouseout()、mouseover()等

      $("#b1").click(function () {
          alert("hahah");
      });
      
    2. 入口函数:相当于window.onload

      与window.onload不同的是:window.onload()在一个页面中只能定义一次,因为window.onload只能赋值为一个function对象,但是$(function(){ });可以定义多次

      $(function () {
      	// 窗口加载之后执行的代码
      });
      
    3. 样式控制:css方法

      $("#div1").css("backgroundColor", "pink");
      

    1. 基本选择器

    1. 元素选择器
      • $("html的标签名"):获得所有与标签名想匹配的元素
    2. id选择器
      • $("#id属性值"):获得与指定id属性值相匹配的元素
    3. 类选择器
      • $(".class属性值"):获得与指定class属性值相匹配的元素
    4. 并集选择器
      • $("选择器1,选择器2……"):获取所有这些选择器

    2. 层级选择器

    1. 后代选择器
      • $("A B"):获取A元素内所有的B元素(包括孙子元素)
    2. 字选择器
      • $("A > B"):获取A元素内的所有B子元素(只获取儿子元素)

    3. 属性选择器

    1. 属性名称选择器

      • $("A[属性名]"):获取包含指定属性名的A元素
    2. 属性选择器

      • $("A[属性名='属性值']"):获取包含特定属性名、属性值的A元素

        $("div[title='div1']") // 获取属性title值为div1的元素
        $("div[title^='div1']") // 获取属性title值以div1开始的元素
        $("div[title$='div1']") // 获取属性title值以div1结束的元素
        $("div[title*='div1']") // 获取属性title值包含div1的元素
        
    3. 复合属性选择器

      • $("A [ 属性名1='属性值1 '][ 属性名2='属性值2 ']...."):获取匹配多个属性名、属性值的元素

    4.过滤选择器

    1. 首元素选择器

      • :first 获得选择的元素的第一个选择器

        $("div:first")// 获取第一个div
        
    2. 尾元素选择器

      • :last 获得选中的元素的最后一个选择器

        $("div:last")// 获取最后一个div
        
    3. 非元素选择器

      • :not(selector) 不包括指定元素的选择器

        $("div:not(.one))// 获得class不为one的div选择器
        
    4. 偶数选择器

      • :even 获得选中的元素的偶数元素,从0开始

        $("div:even")// 获得选中的元素的偶数元素div
        
    5. 奇数选择器

      • :odd 获得选中的元素的奇数元素,从0开始

        $("div:odd")// 获得选中的元素的奇数元素div
        
    6. 等于索引选择器

      • :eq(index) 获得索引等于index的选择器

        $("div:eq(3)")// 获得索引等于3的div元素
        
    7. 大于索引选择器

      • :gt(index) 获得索引大于index的选择器

        $("div:gt(3)")// 获得索引大于3的div元素
        
    8. 小于索引选择器

      • :lt(index) 获得索引小于index的选择器

        $("div:lt(3)")// 获得索引小于3的div元素
        
    9. 标题选择器

      • :header 获得标题(h1-h6)元素

        $(:header)// 获得所有的标题元素 
        

    5.表单过滤选择器

    1. 可用元素选择器
      • :enabled 获得可用元素
    2. 不可用元素选择器
      • :disabled 获得不可用元素
    3. 选中选择器
      • :checked 获得单选、复原框选中的元素
    4. 选中选择器
      • selected 获得下拉选框选中的的元素

    五、DOM操作

    1. 内容操作

    1. html():获取、设置标签体内容
    2. text() :获取、设置标签体内纯文本内容
    3. val():获取、设置元素的val值

    2. 属性操作

    1. 通用属性操作

      • attr():获取、设置元素的属性值

      • removeAttr():删除属性

      • prop():获取、设置元素的属性值

      • removeProp():删除属性

        var name = $("#bj").attr("name"); // 获取name属性的属性值
        $("#bj").attr("name", "北京");// 设置name属性的属性值
        var prop = $("#hobby").prop("checked");// 获取属性值,checked是固有属性
        

      注意:attr与prop的区别,当操作的是元素的固有属性,用prop,操作元素的自定义属性,用attr

    2. 对class属性的操作

      • addClass():添加class属性值
      • removeClass():移除class属性值
      • toggleClass():切换class属性,toggle("didi"),如果元素对象有class=“didi”,就删除class属性,如果没有就添加该class属性

    3.CRUD(增删改查)操作

    1. append():父元素将子元素追加到末尾
      • 对象1.append(对象2):将对象2追加到对象1的内部,并且是添加到末尾
    2. prepend():父元素将子元素追加到开头
      • 对象1.prepend(对象2):将对象2追加到对象1的内部,并且是添加到开头
    3. appendTo():
      • 对象1.appendTo(对象2):将对象1追加到对象2的内部,并且是添加到末尾
    4. prependTo():
      • 对象1.prependTo(对象2):将对象1追加到对象2的内部,并且是添加到开头
    5. after():添加元素到到元素后面
      • 对象1.after(对象2):将对象2添加到对象1后面,他们是兄弟关系
    6. before():添加元素到元素前面
      • 对象1.before(对象2):将对象2添加到对象1前面,他们是兄弟关系
    7. insertAfter():
      • 对象1.insertAfter(对象2):将对象1添加到对象2后面,他们是兄弟关系
    8. insertBefore():
      • 对象1.insertBefore(对象2):将对象1添加到对象2前面,他们是兄弟关系
    9. remove():移除元素
      • 对象.remove():移除对象
    10. empty():清空后代元素
      • 对象.empty():清空对象的所有后代元素,但是保留当前对象,当前对象的属性节点

    六、jQuery动画

    jQuery三种方式显示和隐藏元素

    1. 默认方式显示和隐藏元素

    1. show([speed, [easing], [fn]])

      • 参数:
        • speed:动画的速度,有三个预定义的值(“slow”,“normal”, “fast”),还可以传递毫秒值
        • easing:动画切换的效果,默认是swing,还有一个值是linear
          • swing:慢----快-----慢
          • linear:匀速
          • fn:动画结束后执行的function对象
    2. hide([speed, [easing], [fn]])

    3. toggle([speed], [easing], [fn])

      function hideFn() {
          $("#showDiv").hide("slow", "swing", function () {
              alert("隐藏了");
          });
          $("#showDiv").hide("slow", "swing");
          $("#showDiv").slideDown("slow");
          $("#showDiv").fadeOut("slow");
      }
      

    2. 滑动方式显示和隐藏元素

    1. slideDown([speed], [easing], [fn])
    2. slideUp([speed, [easing], [fn]])
    3. slideToggle([speed], [easing], [fn])

    3. 淡入淡出方式显示和隐藏元素

    1. fadeIn([speed], [easing], [fn])
    2. fadeOut([speed], [easing], [fn])
    3. fadeToggle([speed, [easing], [fn]])

    七、遍历

    1. js的遍历方式:for、while、do while

    $(function () {
        var citys = $("#city > li");
        for (var i = 0; i < citys.length; i++) {
            alert(i + " : " + citys[i].innerHTML);
        }
    });
    

    2. jQuery的三种遍历方式

    1. jQuery对象.each(callback);

      1. callback是回调函数,可以在函数体return true,相当于一般循环的continue,return false相当于break

      2. callback的实体就是callback(index,element):index是遍历的索引,element是遍历集合获得的对象

        $("#city > li").each(function (index, element) {
            if ($(element).html() == "天津") {
                return true;
            }
            alert(index + " : " + $(element).html());
        });
        
      3. $.each(jQuery对象, [callback]):用法和上一个类似,回调函数是一样的,又称全局遍历

        $.each($("#city > li"), function () {
            alert($(this).text());
        });
        
    2. for.....of:jQuery3.0之后的版本提供的遍历方式

    八、jQuery事件绑定方式

    1. jQuery标准的事件绑定

    jQuery对象.事件方式(回调函数):回调函数里编写发生事件后执行的逻辑

    // 单击事件
    $("#name").click(function () {
        alert("我被点击了");
    });
    // 鼠标来了
    $("#name").mouseover(function () {
        alert("鼠标来了");
    });
    // 鼠标走了
    $("#name").mouseout(function () {
        alert("鼠标走了");
    });
    

    2. on、off绑定解绑事件

    1. jQuery对象.on("事件名称", 回调函数)

    2. jQuery对象.off("事件名称")

      $(function () {
          $("#btn").on("click", function () {
              // 单击事件的执行逻辑
              alert("click...");
          });
      
          // 当btn2被单击了,就解除btn的单击事件
          $("#btn2").click(function () {
             $("#btn").off("click");
             // off不传参数,解除btn上绑定的所有事件
              $("#btn").off();
          });
      });
      

    3. 事件切换:toggle

    jQuery对象.toggle(fn1, fn2...):fn1、fn2、...切换执行

    注意:jQuery1.9版本之后就删除了该方法,但是要使用可以加入插件jQuery Migrate恢复

    $(function () {
        $("#btn").toggle(function () {
            $("#myDiv").css("backgroundColor", "pink");
        }, function () {
            $("#myDiv").css("backgroundColor", "blue");
        });
    });
    

    九、插件

    1. $.fn.extend(object):增强通过jQuery获取的对象的功能,定义之后jQuery获取的对象可以调动里面的方法,获得的对象如:$("#id")、$(".class属性值")等

      $.fn.extend({
          // 定义一个check防方法,该方法是所有jQuery对象都可以调用的
          check:function () {
              this.prop("checked", true);
          },
      
          uncheck:function () {
              this.prop("checked", false);
          }
      });
      
      $(function () {
          $("#btn-check").click(function () {
          	// 获得的jQuery对象调用check方法
              $("input[type='checkbox']").check();
          });
          $("#btn-uncheck").click(function () {
              $("input[type='checkbox']").uncheck();
          });
      });
      
    2. $.extend(object):增强jQuery自身的功能,jQuery自身就是$、jQuery,定义之后$可以直接调用里面的方法

      $.extend({
         max:function (a, b) {
             return a > b ? a : b;
         },
         
         min:function (a, b) {
             return a < b ? a : b;
         }
      });
      
      alert($.max(3, 4));
      alert($.min(3, 4));
      
  • 相关阅读:
    c# -- 实现浏览功能(备忘)
    自己动手写中文分词解析器完整教程,并对出现的问题进行探讨和解决(附完整c#代码和相关dll文件、txt文件下载)
    爬虫技术 -- 进阶学习(九)使用HtmlAgilityPack获取页面链接(附c#代码及插件下载)
    爬虫技术 -- 进阶学习(八)模拟简单浏览器(附c#代码)
    爬虫技术 -- 进阶学习(七)简单爬虫抓取示例(附c#代码)
    c# -- 介绍File.AppendAllText 方法
    c# -- 解决FromsAuthentication上下文不存在
    c# -- Form1_Load()不被执行的三个解决方法
    爬虫技术 -- 基础学习(六)解析相对地址
    爬虫技术 -- 基础学习(五)解决页面编码识别(附c#代码)
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10838754.html
Copyright © 2011-2022 走看看