zoukankan      html  css  js  c++  java
  • jQuery简介

     

    jQuery简介

     

      jQuery是继Prototype之后的又一个javascript库,它由John Resig创建于20061月。

     

    Javascript库作用比较:

    1. Prototypehttp://www.prototypejs.org/

     

       prototype是最早成型的javascript库之一,优点:它对javascript的内置对像(如string对象、Array对象)做了大量扩展。缺点:成型年代早,在整体对于面向对象编程思想上把握不到位,导致结构松散。

    2. Dojo(http://www.dojotoolkit.org/)

      优点:提供了一些其它javascript库没有的功能,如离线存储的API、生成图标的组件、基于SVG/VML的矢量图形库、Comet支持等,非常适合企业级应用开发。缺点:学习曲线陡,文档不齐全,最要命的是API不稳定,每次升级都可能导致已有的程序失效。

    3.YUIhttp://developer.yahoo.com/yui

      YUI全名(The YahooUser Interface Library)Yahoo打造出来的库。

    优点:提供了比较丰富的DOM操作、Ajax应用一系列封装、包括几个核心的CSS、极其完备的文档、编写非常规范的代码、不错的扩展性。

    4. ExtJS(http://www.sencha.com/products/extjs/)

      ExtJs,也长称Ext。原本是对YUI的扩展。优点:主要用于创建前端用户界面,提供了极其丰富的组件。缺点:由于侧重于界面,所以本身比较臃肿,不压缩的文件上兆(MB)Ext并非完全免费,在商业用途方面需要付费获得授权许可。

    5. MooTools(http://mootools.net/)

      优点:轻量级的库、简洁、模块化(模块化思想非常优秀,核心代码只有8K)、面向对象的javascript框架,语法几乎和Prototype一样,彻底的完全的面向对象编程思想、语法简洁直观,文档完善。

    6. jQueryhttp://jquery.com

      优点:拥有强大的选择器、出色的DOM操作、可靠的事件处理、出色的兼容性、链式操作。

    jQuery的优势

     1.轻量级

      jQuery非常轻巧,采用Dean Edwardsde Packer压缩后,不到30KB,如果服务器端启用gzip压缩后,只有16KB

     2.强大的选择器

      Jquery支持CSS1CSS3多达60多种选择器,和jquery独创的高级而复杂的选择器。

     3.出色的DOM操作的封装

      Jquery封装了大量常用的DOM操作。

     4.可靠的事件处理机制

     5.完善的Ajax

      Jquery将所有的Ajax操作封装到了一个函数$.ajax里。

     6.不污染顶级变量(闭包性)

      Jquery只建立一个名为jquery的对象,其所有的方法都在这个对象之下。另外的一个别名$也可以随时交出控制权。

     7.出色的浏览器兼容性

     8.链式操作

     9.行为层与结构层分离

      开发者不需要再去html调用事件,而是直接使用jquery选择器选中元素,然后直接给元素添加事件。

     10.丰富的插件支持

     11.完善的文档

     12.开源

     13.隐式迭代(省去循环)

    编写简单的jquery代码

        jquery库中,$就是jquery的一个简写形式,比如$(“#foo”)jQuery(“#foo”)是等价的。如果没有特别说明,程序中的$符号都是jQuery的一个简写形式。

    编写第一个jquery程序:

     

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    
            "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    
    <head>
    
        <title>第一个jQuery程序</title>
    
        <script src="Scripts/jquery-1.4.4.js" type="text/javascript"></script>  //src是引入jquery的路径
    
    </head>
    
    <body>
    
        <script type="text/javascript ">
    
            $(document).ready(function()
    
            {
    
                alert("Hello jQuery!");
    
            });
    
        </script>
    
    </body>
    
    </html>
    
    其中有这样一段代码:
    
    $(document).ready(function ()
    
    {
    
    //代码
    
    });

     

     

    它类似于window.onload,但与window.onload还是有一定区别。如下:

     

    jQuery对象与DOM对象的相互转换:

      1.获取jquery对象:

      Var  $variable =jQuery对象;

      2.获取DOM对象:

      Var  variable =DOM对象;

     将jquery对象转换成DOM对象,可以把jquery对象看作DOM对象的数组,通过索引下标,就能从jquery对象中获取DOM对象:

         jQuery 对象[index]  或者  jQuery 对象.get(index)

      jQuery对象转换DOM对象:

      1.  

      Var $user=$(“#user”);   //获取jQuery对象

      Var $user=$ user[0];  //将获取的jQuery对象转换为DOM对象

      2.

      Var  $user=$(“#user”); //获取jQuery对象

      Var  user=$user.get(0);  //将获取的jQuery对象转换为DOM对象

     DOM对象转换为jQuery对象:

       Var  user = document.getElementById(“user”);  //获取DOM对象

      Var  $user = $(“user”);  //将获取的DOM对象转换为jQuery对象

      jQuery库与其它库冲突问题:

      当我们的项目中存在多种javascript库,比如同时存在prototype.jsjquery.js,为了避免“$”对象的冲突,我们使用jquery中的.noConflict()来解决冲突,但需要注意引入javascript库的顺序。

      使用.noConflict()

    解决方法一:(其它库在前)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    
            "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    
    <head>
    
        <title>第一个jQuery程序</title>
    
        <!--引入Prototype库-->
    
        <script src="prototype-1.6.0.2.js"  type="text/javascript"></script>
    
        <!--引入jquery库-->
    
        <script src="Scripts/jquery-1.4.4.js" type="text/javascript"></script>  //src是引入jquery的路径
    
        <script type="text/javascript ">
    
            jQuery.noConflict(); //将变量$的控制权让渡给prototype.js
    
            jQuery(function()
    
            {//使用jQuery,不再使用“$”
    
                jQuery("p").css("color","red");  //使用jQuery
    
                $("ptest").style.display = "none"; //这里的“$”符号是Prototype的方法
    
            }); 
    
        </script>
    
    </head>
    
    <body>
    
        <p id="ptest">test<p>
    
        <p>test</p>
    
    </body>
    
    </html>

    解决方法二:(其它库在后)

        

    <!--引入jquery库-->
    
        <script src="Scripts/jquery-1.4.4.js" type="text/javascript"></script>  //src是引入jquery的路径
    
        <script type="text/javascript ">
    
            jQuery.noConflict(); //将变量$的控制权让渡给prototype.js
    
            jQuery(function()
    
            {//使用jQuery,不再使用“$”
    
                jQuery("p").css("color","red");  //使用jQuery
    
                $("ptest").style.display = "none"; //这里的“$”符号是Prototype的方法
    
            }); 
    
    </script>
    
        <!--引入Prototype库-->
    
        <script src="prototype-1.6.0.2.js"  type="text/javascript"></script>
    
    </head>
    
    <body>
    
        <p id="ptest">test<p>
    
        <p>test</p>
    
    </body>

    不使用.noConflict()

    一:jQuery(function(){···})内部不使用其它库的代码

    <head>
    
        <!--引入jquery库-->
    
     <script src="Scripts/jquery-1.4.4.js" type="text/javascript"></script>  
    
        <!--引入Prototype库-->
    
        <script src="prototype-1.6.0.2.js"  type="text/javascript"></script>
    
    <script type=”text/javascript”>
    
    jQuery(function($)
    
    {
    
    $(“p”).css(“color”,”red”); //函数内部的$还是jQuery的$。
    
    });
    
    $(“ptest”).style.diaplay=”none”; //函数外部的$是Prototype的$。
    
    </script>
    
    </head>
    
    <body>
    
    <p id=”ptest”>test<p>
    
    <p>test<p>
    
    </body>

    二:利用闭包特性:

    <head>
    
        <!--引入jquery库-->
    
     <script src="Scripts/jquery-1.4.4.js" type="text/javascript"></script>  
    
        <!--引入Prototype库-->
    
        <script src="prototype-1.6.0.2.js"  type="text/javascript"></script>
    
    <script type=”text/javascript”>
    
    (function($)
    
    {
    
    $(“p”).css(“color”,”red”); //函数内部的$还是jQuery的$。
    
    })(jQuery);
    
    $(“ptest”).style.diaplay=”none”; //函数外部的$是Prototype的$。
    
    </script>
    
    </head>
    
    <body>
    
    <p id=”ptest”>test<p>
    
    <p>test<p>
    
    </body>

     

     

     

     

  • 相关阅读:
    正则表达式
    数组去重
    [WOJ4354] 蜀石经
    [NOI2002] 银河英雄传说
    [洛谷P2186] 小Z的栈函数
    [洛谷P2756]飞行员配对方案问题
    [洛谷P2071] 座位安排
    [洛谷P2417]课程
    [洛谷P1640] [SCOI2010]连续攻击游戏
    [洛谷P3512 [POI2010]PIL-Pilots]
  • 原文地址:https://www.cnblogs.com/chef5-3/p/3420374.html
Copyright © 2011-2022 走看看