zoukankan      html  css  js  c++  java
  • Day49 前端基础--jQuery

    一,jQuery初识

      1.jQuery介绍

        1.jQuery是一个轻量级的,兼容多浏览器的JavaScript库

        2.jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能极大地简化JavaScript编程。它的宗旨就是:"Write less, do more."

      2.jQuery的优势

    1.一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。
    
    2.丰富的DOM选择器,jQuery的选择器用起来很方便,比如要找到某个DOM对象的相邻元素,JS可能要写好几行代码,而jQuery一行代码就搞定了,再比如要将一个表格的隔行变色,jQuery也是一行代码搞定。
    
    3.链式表达式。jQuery的链式操作可以把多个操作写在一行代码里,更加简洁。
    
    4.事件、样式、动画支持。jQuery还简化了js操作css的代码,并且代码的可读性也比js要强。
    
    5.Ajax操作支持。jQuery简化了AJAX操作,后端只需返回一个JSON格式的字符串就能完成与前端的通信。
    6.跨浏览器兼容。jQuery基本兼容了现在主流的浏览器,不用再为浏览器的兼容问题而伤透脑筋。
    7.插件扩展开发。jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应插件,并且用jQuery插件做出来的效果很炫,并且可以根据自己需要去改写和封装插件,简单实用。

      3.jQuery使用

        1.下载jQuery

          http://jquery.com/download/

        2.导入

          1.script导入本地的文件

          2.使用CDN

        3.按照jQuery的语法使用就可以

          注意:先导入再使用

        4.jQuery对象

    jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是 jQuery独有的。如果一个对象是 jQuery对象,那么它就可以使用jQuery里的方法:例如$(“#i1”).html()。
    
    $("#i1").html()的意思是:获取id值为 i1的元素的html代码。其中 html()是jQuery里的方法。
    
    相当于: document.getElementById("i1").innerHTML;
    
    虽然 jQuery对象是包装 DOM对象后产生的,但是 jQuery对象无法使用 DOM对象的任何方法,同理 DOM对象也没不能使用 jQuery里的方法。
    
    一个约定,我们在声明一个jQuery对象变量的时候在变量名前面加上$:
        var $variable = jQuery对像
        var variable = DOM对象
        $variable[0]//jQuery对象转成DOM对象
    
    拿上面那个例子举例,jQuery对象和DOM对象的使用:
        $("#i1").html();//jQuery对象可以使用jQuery的方法
        $("#i1"l)[0].innerHTML;// DOM对象使用DOM的方法

    二,jQuery基础语法

      1.查找标签(非常非常多)

        1.基本选择器(同CSS选择器)

    //id选择器
    $("#id")
    
    //标签选择器
    $("tagName")
    
    //class选择器
    $(".className")
    
    //配合使用
    $("div.c1") //找到有c1 class类的div标签
    
    //所有元素选择器:
    $("*")
    
    //组合选择器
    $("#id, .className, tagName")

        2.层级选择器(同CSS选择器)

    //x和y可以为任意选择器
    $("x y");  //x的所有后代y (子子孙孙)
    $("x > y");  //x的所有儿子y (儿子)
    $("x + y");  //找到所有紧挨在x后面的y
    $("x ~ y");  //x之后所有的兄弟y

        3.属性选择器

    [attribute]
    [attribute=value]// 属性等于
    [attribute!=value]// 属性不等于
    
    //实例
    <input type="text">
    <input type="password">
    <input type="checkbox">
    $("input[type='checkbox']");  // 取到checkbox类型的input标签
    $("input[type!='text']");  // 取到类型不是text的input标签

        4.表单筛选器

    :text
    :password
    :file
    :radio
    :checkbox
    
    :submit
    :reset
    :button
    
    //
    $(":checkbox")  // 找到所有的checkbox
    
    //表单对象属性:
    :enabled
    :disabled
    :checked
    :selected
    
    //例:找到可用的input标签
    <form>
      <input name="email" disabled="disabled" />
      <input name="id" />
    </form>
    
    $("input:enabled")  // 找到可用的input标签
    
    
    //例:找到被选择中的option
    <select id="s1">
      <option value="beijing">北京市</option>
      <option value="shanghai">上海市</option>
      <option selected value="guangzhou">广州市</option>
      <option value="shenzhen">深圳市</option>
    </select>
    
    $(":selected")  // 找到所有被选中的option

        

        5.基本筛选器

    :first // 第一个
    :last // 最后一个
    :eq(index)// 索引等于index的那个元素
    :even // 匹配所有索引值为偶数的元素,从 0 开始计数
    :odd // 匹配所有索引值为奇数的元素,从 0 开始计数
    :gt(index)// 匹配所有大于给定索引值的元素
    :lt(index)// 匹配所有小于给定索引值的元素
    :not(元素选择器)// 移除所有满足not条件的标签
    :has(元素选择器)// 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)
    
    //
    $("div:has(h1)")// 找到所有后代中有h1标签的div标签
    $("div:has(.c1)")// 找到所有后代中有c1样式类的div标签
    $("li:not(.c1)")// 找到所有不包含c1样式类的li标签
    $("li:not(:has(a))")// 找到所有后代中不含a标签的li标签
    //例:自定义模态框,使用jQuery实现弹出和隐藏功能
    
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="x-ua-compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>自定义模态框</title>
      <style>
        .cover {
          position: fixed;
          left: 0;
          right: 0;
          top: 0;
          bottom: 0;
          background-color: darkgrey;
          z-index: 999;
        }
        .modal {
           600px;
          height: 400px;
          background-color: white;
          position: fixed;
          left: 50%;
          top: 50%;
          margin-left: -300px;
          margin-top: -200px;
          z-index: 1000;
        }
        .hide {
          display: none;
        }
      </style>
    </head>
    <body>
    <input type="button" value="弹" id="i0">
    
    <div class="cover hide"></div>
    <div class="modal hide">
      <label for="i1">姓名</label>
      <input id="i1" type="text">
       <label for="i2">爱好</label>
      <input id="i2" type="text">
      <input type="button" id="i3" value="关闭">
    </div>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <script>
      var tButton = $("#i0")[0];
      tButton.onclick=function () {
        var coverEle = $(".cover")[0];
        var modalEle = $(".modal")[0];
    
        $(coverEle).removeClass("hide");
        $(modalEle).removeClass("hide");
      };
    
      var cButton = $("#i3")[0];
      cButton.onclick=function () {
        var coverEle = $(".cover")[0];
        var modalEle = $(".modal")[0];
    
        $(coverEle).addClass("hide");
        $(modalEle).addClass("hide");
      }
    </script>
    </body>
    </html>

        6.筛选器方法

          1.往下找

            1.next()

            2.nextAll()

            3.nextUntil()

    $("#id").next()
    $("#id").nextAll()
    $("#id").nextUntil("#i2")

          2.往上找

            1.prev()

            2.prevAll()

            3.prevUntil()

    $("#id").prev()
    $("#id").prevAll()
    $("#id").prevUntil("#i2")

          3.找父标签parent()

            1.parent()

            2.parents()

            3.parentsUntil()

    $("#id").parent()
    $("#id").parents()  // 查找当前元素的所有的父辈元素
    $("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。

          

          4.儿子和兄弟元素:

    $("#id").children();// 儿子们
    $("#id").siblings();// 兄弟们

          5.find()

    //查找:搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。
    $("div").find("p")  //等价于$("div p")

          6.filter()

    //筛选:筛选出与指定表达式匹配的元素集合。这个方法用于缩小匹配的范围。用逗号分隔多个表达式
    $("div").filter(".c1")  等价于 $("div.c1")  // 从结果集中过滤出有c1样式类的

          补充方法:

    .first() // 获取匹配的第一个元素
    .last() // 获取匹配的最后一个元素
    .not() // 从匹配元素的集合中删除与指定表达式匹配的元素
    .has() // 保留包含特定后代的元素,去掉那些不含有指定后代的元素。
    .eq() // 索引值等于指定值的元素
    //例:左侧菜单
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="x-ua-compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>左侧菜单示例</title>
      <style>
        .left {
          position: fixed;
          left: 0;
          top: 0;
           20%;
          height: 100%;
          background-color: rgb(47, 53, 61);
        }
    
        .right {
           80%;
          height: 100%;
        }
    
        .menu {
          color: white;
        }
    
        .title {
          text-align: center;
          padding: 10px 15px;
          border-bottom: 1px solid #23282e;
        }
    
        .items {
          background-color: #181c20;
    
        }
        .item {
          padding: 5px 10px;
          border-bottom: 1px solid #23282e;
        }
    
        .hide {
          display: none;
        }
      </style>
    </head>
    <body>
    
    <div class="left">
      <div class="menu">
        <div class="title">菜单一</div>
        <div class="items">
          <div class="item">111</div>
          <div class="item">222</div>
          <div class="item">333</div>
        </div>
        <div class="title">菜单二</div>
        <div class="items hide">
          <div class="item">111</div>
          <div class="item">222</div>
          <div class="item">333</div>
        </div>
        <div class="title">菜单三</div>
        <div class="items hide">
          <div class="item">111</div>
          <div class="item">222</div>
          <div class="item">333</div>
        </div>
      </div>
    </div>
    <div class="right"></div>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    
    <script>
      $(".title").click(function (){  // jQuery绑定事件
        // 隐藏所有class里有.items的标签
        $(".items").addClass("hide");  //批量操作
        $(this).next().removeClass("hide");
      });
    </script>

      2.操作标签

        1.操作标签的样式

          1.操作Class

    //样式操作
    addClass();// 添加指定的CSS类名。
    removeClass();// 移除指定的CSS类名。
    hasClass();// 判断样式存不存在
    toggleClass();// 切换CSS类名,如果有就移除,如果没有就添加。

          2.直接操作style

    //CSS
    css("color","red")//DOM操作:tag.style.color="red"
    //示例:
    $("p").css("color", "red"); //将所有p标签的字体设置为红色

      3.事件

      4.jQuery内置简单的动画

  • 相关阅读:
    课程作业四 生成随机数并求和,大数运算
    课程作业三 string,char操作
    课程作业二 类内静态内容(代码块,静态变量),构造函数,非静态代码块执行顺序
    十一作业 java数值范围方面训练
    课程作业一 将字符串型数组里的数字相加
    NABCD需求分析
    人月神话阅读笔记01
    软件工程第五周总结
    清明第三天
    清明第二天安排
  • 原文地址:https://www.cnblogs.com/lianyeah/p/9806606.html
Copyright © 2011-2022 走看看