zoukankan      html  css  js  c++  java
  • day 54 JS 之 jquery

    jQuery入门

    jQuery快速入门。

    jQuery介绍

    1. jQuery是一个轻量级的、兼容多浏览器的JavaScript库。
    2. jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“

    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插件做出来的效果很炫,并且可以根据自己需要去改写和封装插件,简单实用。

    jQuery包含以下内容:

    1. 选择器
    2. 筛选器
    3. 样式操作
    4. 文本操作
    5. 属性操作
    6. 文档处理
    7. 事件
    8. 动画效果
    9. 插件
    10. each、data、Ajax

    下载链接:jQuery官网

    jQuery选择

    • 1.x:兼容IE678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)
    • 2.x:不兼容IE678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)
    • 3.x:不兼容IE678,只支持最新的浏览器。需要注意的是很多老的jQuery插件不支持3.x版。目前该版本是官方主要更新维护的版本。

    维护IE678是一件让人头疼的事情,一般我们都会额外加载一个CSS和JS单独处理。值得庆幸的是使用这些浏览器的人也逐步减少,PC端用户已经逐步被移动端用户所取代,如果没有特殊要求的话,一般都会选择放弃对678的支持。

    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对象变量的时候在变量名前面加上$

    1
    2
    3
    var $variable = jQuery对像
    var variable = DOM对象
    $variable[0] //jQuery对象转成DOM对象

    拿上面那个例子举例,jQuery对象和DOM对象的使用:

    1
    2
    $("#i1").html(); //jQuery对象可以使用jQuery的方法
    $("#i1")[0].innerHTML; // DOM对象使用DOM的方法

    jQuery基础语法

    $(selector).action()

    选择器

    id选择器:

    $('#id')

    1
    $("#id")

    标签选择器:

    $('tagName')

    1
    $("tagName")

    class选择器:

    $(' .className ')

    1
    $(".className")

    所有元素选择器:

    $(' * ')

    1
    $("*")

     

    组合选择器:

    1
    $("#id, .className, tagName")

    层级选择器:

    x和y可以为任意选择器

    1
    2
    3
    4
    $("x y"); // x的所有后代y(子子孙孙)
    $("x > y"); // x的所有儿子y(儿子)
    $("x + y") // 找到所有紧挨在x后面的y
    $("x ~ y") // x之后所有的兄弟y

     

    基本筛选器:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    :first // 第一个
    :eq(index) // 索引等于index的那个元素
    :last // 最后一个
    :even // 匹配所有索引值为偶数的元素,从 0 开始计数
    :odd // 匹配所有索引值为奇数的元素,从 0 开始计数
    :gt(index) // 匹配所有大于给定索引值的元素 greater  than
    :lt(index) // 匹配所有小于给定索引值的元素  
    :not(选择器) // 移除所有满足Not条件的标签  是本级
    :has(选择器) // 选取所有包含一个或多个标签在其内的标签(指的是从后代元素中找
    :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 class的li标签
    $("li:not(:has(a))")// 找到所有后代中不含a标签的li标签

    注意:

    1. 这里的hasnot不是简单的 有和 没有的意思,它俩没啥关系(不是一组)
    2. :not:has通常用.not().has()代替
    3. $("div:has(.c1)")等价于$("div .c1")并不等价于$("div.c1")

     

    属性选择器:

    作业:依据要求找出相关内容

    <!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>jQuery选择器筛选器练习</title>
      <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
      <link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
      <style>
    
        .my-padding {
          padding: 10px 0;
        }
    
        .my-dark {
          background-color: #f5f5f5;
        }
    
        .footer {
          background: #111;
          font-size: 0.9em;
          position: relative;
          clear: both;
        }
        .my-white {
          color: #ffffff;
        }
    
        body {
          margin: 0;
        }
        #progress {
          height: 2px;
          background-color: #b91f1f;
          transition: opacity 500ms linear;
        }
        #progress.done{
          opacity: 0;
        }
      </style>
    </head>
    <body>
    <div id="progress"></div>
    <!--导航栏开始-->
    <nav class="navbar navbar-inverse my-nav">
      <div class="container">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                  data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="http://www.oldboyedu.com/"><strong>OldBoy Edu</strong></a>
        </div>
    
        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
            <li><a href="#">Python学院<span class="sr-only">(current)</span></a></li>
            <li><a href="#">Linux学院</a></li>
            <li><a href="http://luffy.oldboyedu.com">路飞学城</a></li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
            <li><a href="#">好好学习</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
                 aria-expanded="false">联系我们<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="#">Rain</a></li>
                <li><a href="#">Egon</a></li>
                <li><a href="#">Yuan</a></li>
                <li role="separator" class="divider"></li>
                <li><a href="#">Q1mi</a></li>
              </ul>
            </li>
          </ul>
        </div><!-- /.navbar-collapse -->
      </div><!-- /.container-fluid -->
    </nav>
    <!--导航栏结束-->
    
    
    <div class="container">
    
      <div class="jumbotron">
        <div id="j1" class="container">
          <h1 class="c1" id="i1">沙河前端小王子</h1>
          <h1 class="c1">带你学习jQuery</h1>
          <p id="p1"><a class="btn btn-primary btn-lg" href="https://q1mi.github.io/Blog/2017/07/10/about_jQuery/"
                        role="button">查看更多</a></p></div>
      </div>
      <hr>
      <div class="row">
        <div class="col-md-12">
          <table class="table table-bordered table-striped">
            <thead>
            <tr>
              <th>#</th>
              <th>姓名</th>
              <th>爱好</th>
              <th>操作</th>
            </tr>
            </thead>
            <tbody>
            <tr>
              <th>1</th>
              <td>Eva_J</td>
              <td>茶道</td>
              <td>
                <button class="btn btn-warning">编辑</button>
                <button class="btn btn-danger">删除</button>
              </td>
            </tr>
            <tr>
              <th>2</th>
              <td>Yuan</td>
              <td>日天</td>
              <td>
                <button class="btn btn-warning">编辑</button>
                <button class="btn btn-danger">删除</button>
              </td>
            </tr>
            <tr id="tr3">
              <th>3</th>
              <td>Alex</td>
              <td>吹牛逼</td>
              <td>
                <button class="btn btn-warning">编辑</button>
                <button class="btn btn-danger">删除</button>
              </td>
            </tr>
            </tbody>
          </table>
        </div>
      </div>
    
      <hr>
      <div class="row">
        <div class="col-md-12">
          <form id="f1">
            <div class="form-group">
              <label for="exampleInputEmail1">邮箱</label>
              <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
            </div>
            <div class="form-group">
              <label for="exampleInputPassword1">密码</label>
              <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
            </div>
            <div class="form-group">
              <label for="exampleInputFile">上传头像</label>
              <input type="file" id="exampleInputFile">
              <p class="help-block">只支持img格式。</p>
            </div>
            <button id="btnSubmit" type="submit" class="btn btn-default">提交</button>
          </form>
        </div>
      </div>
    
      <hr>
    
      <div class="row">
        <div class="col-md-12">
          <div class="checkbox-wrapper">
            <div class="panel panel-info">
              <div class="panel-heading">jQuery学习指南</div>
              <div id="my-checkbox" class="panel-body">
                <div class="checkbox">
                  <label>
                    <input type="checkbox" value="0">
                    jQuery一点都不难
                  </label>
                </div>
                <div class="checkbox">
                  <label>
                    <input type="checkbox" value="1" checked>
                    jQuery一学就会
                  </label>
                </div>
                <div class="checkbox">
                  <label>
                    <input type="checkbox" value="2">
                    jQuery就要多练
                  </label>
                </div>
    
                <div class="checkbox">
                  <label>
                    <input type="checkbox" value="3" disabled>
                    jQuery学不好
                  </label>
                </div>
              </div>
            </div>
          </div>
          <hr>
          <div class="radio-wrapper">
    
            <div class="panel panel-info">
              <div class="panel-heading">我来老男孩之后...</div>
              <div class="panel-body">
                <div class="radio">
                  <label>
                    <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>
                    我的心中只有学习
                  </label>
                </div>
                <div class="radio">
                  <label>
                    <input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">
                    学习真的太TM有意思了
                  </label>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    
      <hr>
    
      <div>
        <i class="fa fa-hand-pointer-o fa-lg fa-rotate-90" aria-hidden="true"></i>
        <a class="btn btn-success" href="http://jquery.cuishifeng.cn/">jQuery中文API指南</a>
      </div>
    
      <hr>
    
      <div class="row">
        <div class="col-md-12">
          <h2>练习题:</h2>
          <ol id="o1">
            <li>找到本页面中id是<code>i1</code>的标签</li>
            <li>找到本页面中所有的<code>h2</code>标签</li>
            <li>找到本页面中所有的<code>input</code>标签</li>
            <li>找到本页面所有样式类中有<code>c1</code>的标签</li>
            <li>找到本页面所有样式类中有<code>btn-default</code>的标签</li>
            <li>找到本页面所有样式类中有<code>c1</code>的标签和所有<code>h2</code>标签</li>
            <li>找到本页面所有样式类中有<code>c1</code>的标签和id是<code>p3</code>的标签</li>
            <li>找到本页面所有样式类中有<code>c1</code>的标签和所有样式类中有<code>btn</code>的标签</li>
            <p id="p2" class="divider"></p>
            <li>找到本页面中<code>form</code>标签中的所有<code>input</code>标签</li>
            <li>找到本页面中被包裹在<code>label</code>标签内的<code>input</code>标签</li>
            <li>找到本页面中紧挨在<code>label</code>标签后面的<code>input</code>标签</li>
            <li>找到本页面中id为<code>p2</code>的标签后面所有和它同级的<code>li</code>标签</li>
            <p id="p3" class="divider"></p>
            <li>找到id值为<code>f1</code>的标签下面的第一个input标签</li>
            <li>找到id值为<code>my-checkbox</code>的标签下面最后一个input标签</li>
            <li>找到id值为<code>my-checkbox</code>的标签下面没有被选中的那个input标签</li>
            <li>找到所有含有<code>input</code>标签的<code>label</code>标签</li>
          </ol>
        </div>
      </div>
    </div>
    
    <div class="my-dark my-padding">
      <div class="container">
        <div class="col-sm-8 my-center">
          <p>写很少的代码,做很多的事。</p>
          <h4>所以说</h4>
          <p>学好jQuery真的很重要,学好jQuery真的很重要,学好jQuery真的很重要。</p>
        </div>
      </div>
    </div>
    
    <div class="footer">
      <div class="row">
        <div class="col-md-12 text-center">
          <span class="my-white">©2017 沙河前端小王子</span>
        </div>
      </div>
    </div>
    
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    </body>
    </html>
    作业代码
  • 相关阅读:
    Django系列6:Model简介,ORM,字段类型,约束
    Django系列4:数据常规操作级联数据
    Django系列5:脑图总结
    Sorted Adjacent Differences
    C
    E. Sleeping Schedule
    D. Ehab the Xorcist
    C. Game with Chips
    D. Walk on Matrixv
    Circle of Monsters
  • 原文地址:https://www.cnblogs.com/wangkun122/p/8177702.html
Copyright © 2011-2022 走看看