zoukankan      html  css  js  c++  java
  • JQuery--基础

    推荐一本不错的数《锋利的jQuery》,还有官方jQuery的API

    一.隐式迭代

    与原生js相比,jQuery的隐式迭代方便很多:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6     <script src="lib/jquery-1.12.2.js"></script>
     7     <script>
     8 //        window.onload = function{
     9 //            var btns = document.getElementsByName('button');
    10 //            for (var i = 0; i < btns.length; i++) {
    11 //              btns[i].onclick = function () {
    12 //                    alert('xxx');
    13 //              }
    14 //            }
    15 //        }
    16 
    17 
    18         $(function () {
    19             // 隐式迭代
    20            $('button').click(function () {
    21               alert('xx');
    22            });
    23         });
    24     </script>
    25 </head>
    26 <body>
    27 <button>按钮</button>
    28 <button>按钮</button>
    29 <button>按钮</button>
    30 <button>按钮</button>
    31 <button>按钮</button>
    32 <button>按钮</button>
    33 </body>
    34 </html>

    二.入口函数

    原生JS如果重复了window.onload = function(){} 的话,后一个会由于 = 号赋值的原因,后一个的window.onload会覆盖前一个window.onload

     1 /*写法1*/
     2         $(function () {
     3             alert('JQ入口函数1');
     4         });
     5         /**
     6          *  JavaScript的入口函数(浏览器加载)
     7          *      要等到页面的所有资源(包括文件,图片)加载完成才开始执行
     8          *  jQuery的入口函数()
     9          *      只会等到文档树加载完成就开始指向,并不会等待图片,文件的加载
    10          * */
    11         // 写法2:完整写法
    12         $(document).ready(function () {
    13             alert('JQ入口函数1');
    14         });
    15        /*写法3:下面写法可以执行,但是不推荐
    16          $().ready(function () {
    17 
    18         });*/
    19 
    20        // 不会发生后一个覆盖前一个的情况因为每一个函数里面有自己的作用域

    三.jQuery对象与DOM对象

    (1)区别

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6     <script>
     7         window.onload = function(){
     8             var btns = document.getElementsByTagName('button');
     9             console.log(btns); //__proto__ 是HTMLCollection
    10         }
    11     </script>
    12     <script src="lib/jquery-1.12.2.js"></script>
    13     <script>
    14 
    15         /**
    16          * jQ对象和DOM对象的方法属性不能通用
    17          *
    18          * JQ经过JQ包装过,jQ对象会比DOM对象功能更多,
    19          *
    20          * */
    21         $(function () {
    22             // 在前端命名习惯里,为了区别原生DOM对象和JQ对象
    23             //      一般JQ对象前我们会添加一个$符号作为标识区别
    24             var $btns = $("button");
    25             console.log($btns);   // 她的__proto__ 是JQ的Object
    26 
    27         });
    28     </script>
    29 </head>
    30 <body>
    31 <button>按钮</button>
    32 <button>按钮</button>
    33 <button>按钮</button>
    34 <button>按钮</button>
    35 <button>按钮</button>
    36 </body>
    37 </html>

    (2)jQuery与DOM对象互相转换

    1 虽然JQ和DOM对象方法属性不通用,但是我们可以转换对象
    2 JQ对象转DOM对象
    3             $(selector)[索引值]
    4             $(selector).get(索引值)
    5 DOM对象转JQ对象
    6             $(DOM对象);

    四.jQuery开关灯效果

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6     <style>
     7         .video-box{
     8              1000px;
     9             height: 460px;
    10             background-color: deepskyblue;
    11             margin:50px auto;
    12         }
    13         body.night{
    14             background-color: #333;
    15             color: #fff;
    16         }
    17         body.night .btn{
    18             background: greenyellow;
    19             border:2px solid darkslategray;
    20             color: #2e2e2e;
    21         }
    22     </style>
    23     <script src="lib/jquery-1.12.2.js"></script>
    24     <script>
    25         /**
    26          * 类操作: 可操作一个或者多个类
    27          *      添加
    28          *          .addClass()
    29          *      删除
    30          *          .removeClass()
    31          *      切换
    32          *          .toggleClass()
    33          *
    34          *   实现页面效果的时候,能通过类操作,最好通过类实现页面效果
    35          * */
    36         $(function () {
    37            $('.btn').click(function () {
    38                // 可以添加一个或者多个类
    39                $('body').toggleClass('night');
    40            });
    41         });
    42     </script>
    43 </head>
    44 <body>
    45     <button class="btn">开关灯</button>
    46     <h1>还有一个页面文字</h1>
    47     <div class="video-box"></div>
    48 </body>
    49 </html>
  • 相关阅读:
    树的直径 学习笔记
    SDOJ 3742 黑白图
    【SDOJ 3741】 【poj2528】 Mayor's posters
    SDOJ 3740 Graph
    SDOJ 3696 Tree
    SDOJ 1195 Zhenhuan
    又一次受刺激后的发奋
    html_表单form中的input类型大集合
    js_表格的增删改
    JS_拖拽窗口的实现
  • 原文地址:https://www.cnblogs.com/mrszhou/p/7774514.html
Copyright © 2011-2022 走看看