jQuery

jQuery是什么

<1> jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。

<2>jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE!

<3>它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器

<4>jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。

<5>jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

注:jQuery 是一个 JavaScript 函数库

jQuery语法

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。

基础语法是:$(selector).action()

  • 美元符号定义 jQuery
  • 选择符(selector)“查询”和“查找” HTML 元素
  • jQuery 的 action() 执行对元素的操作

文档就绪函数:防止文档在完全加载(就绪)之前运行 jQuery 代码.

            
                $(document).ready(function(){

                    --- jQuery functions go here ----

                });
            
        

jQuery选择器

  • 元素选择器
      jQuery 使用 CSS 选择器来选取 HTML 元素。
    1. $("p") 选取 <p> 元素。
    2. $("p.intro") 选取所有 class="intro" 的 <p> 元素。
    3. $("p#demo") 选取所有 id="demo" 的 <p> 元素。
  • 属性选择器
      jQuery 使用 XPath 表达式来选择带有给定属性的元素。
    1. $("[href]") 选取所有带有 href 属性的元素。
    2. $("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
    3. $("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
    4. $("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。

jQuery效果

  • 隐藏和显示
            
                $("#hide").click(function(){
                  $("p").hide();
                });

                $("#show").click(function(){
                  $("p").show();
                });
                $(selector).hide(speed,callback);
                $(selector).show(speed,callback);

                //可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
                //可选的 callback 参数是隐藏或显示完成后所执行的函数名称。


                $("button").click(function(){
                  $("p").toggle();
                });
                //通过 jQuery,您可以使用 toggle() 方法来切换 hide() 和 show() 方法。
                //显示被隐藏的元素,并隐藏已显示的元素:
            
        
  • 淡入淡出
            
                $(selector).fadeIn(speed,callback); //可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒
                $(selector).fadeOut(speed,callback);    //淡出
                $(selector).fadeToggle(speed,callback);  //切换
                $(selector).fadeTo(speed,opacity,callback); //fadeTo() 方法中必需的 opacity 参数将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间)。
            
        
  • 滑动
            
                $(selector).slideDown(speed,callback); //向下滑动
                $(selector).slideUp(speed,callback); //向上滑动
                $(selector).slideToggle(speed,callback); //jQuery slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换。
            
        
  • 动画
            
                $(selector).animate({params},speed,callback); //必需的 params 参数定义形成动画的 CSS 属性。
                可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
                可选的 callback 参数是动画完成后所执行的函数名称。


                //jQuery animate() - 使用相对值
                $("button").click(function(){
                  $("div").animate({
                    left:'250px',
                    height:'+=150px',
                    '+=150px'
                  });
                });


                //jQuery animate() - 使用预定义的值
                //可以把属性的动画值设置为 "show"、"hide" 或 "toggle":
                $("button").click(function(){
                  $("div").animate({
                    height:'toggle'
                  });
                });


                //jQuery animate() - 使用队列功能
                $("button").click(function(){
                  var div=$("div");
                  div.animate({height:'300px',opacity:'0.4'},"slow");
                  div.animate({'300px',opacity:'0.8'},"slow");
                  div.animate({height:'100px',opacity:'0.4'},"slow");
                  div.animate({'100px',opacity:'0.8'},"slow");
                });
            
        

注:默认地,所有 HTML 元素都有一个静态位置,且无法移动。 如需对位置进行操作,要记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute!

  • 停止动画
            
                //jQuery stop() 方法
                $(selector).stop(stopAll,goToEnd);
                //可选的 stopAll 参数规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。
                //可选的 goToEnd 参数规定是否立即完成当前动画。默认是 false。
                //因此,默认地,stop() 会清除在被选元素上指定的当前动画。


                $("#stop").click(function(){
                  $("#panel").stop();
                });
            
        

jQuery HTML

  • 内容获取
    1. text() - 设置或返回所选元素的文本内容
    2. html() - 设置或返回所选元素的内容(包括 HTML 标记)
    3. val() - 设置或返回表单字段的值
    4. attr() - 用于设置/改变属性值。
  • 添加元素
    1. append() - 在被选元素的结尾插入内容
    2. prepend() - 在被选元素的开头插入内容
    3. after() - 在被选元素之后插入内容
    4. before() - 在被选元素之前插入内容
  • 删除元素
    1. remove() - 删除被选元素(及其子元素)
    2. empty() - 从被选元素中删除子元素
  • 操作CSS
    1. addClass() - 向被选元素添加一个或多个类
    2. removeClass() - 从被选元素删除一个或多个类
    3. toggleClass() - 对被选元素进行添加/删除类的切换操作
    4. css() - 设置或返回样式属性
  • 设置CSS
            
                css("propertyname","value"); //设置指定的 CSS 属性

                css({"propertyname":"value","propertyname":"value",...}); //设置多个 CSS 属性
            
        
  • 尺寸方法
    1. width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
    2. height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
    3. innerWidth() 方法返回元素的宽度(包括内边距)。
    4. innerHeight() 方法返回元素的高度(包括内边距)。
    5. outerWidth() 方法返回元素的宽度(包括内边距和边框)。
    6. outerHeight() 方法返回元素的高度(包括内边距和边框)。

jQuery 遍历

遍历 DOM 树
  • parent() 方法返回被选元素的直接父元素。
  • parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。
  • parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。
  • children() 方法返回被选元素的所有直接子元素。
  • find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。
  • siblings() 方法返回被选元素的所有同胞元素。
  • next() 方法返回被选元素的下一个同胞元素。该方法只返回一个元素。
  • nextAll() 方法返回被选元素的所有跟随的同胞元素。
  • nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。
  • prev(), prevAll() 以及 prevUntil() 方法的工作方式与上面的方法类似,只不过方向相反而已:它们返回的是前面的同胞元素(在 DOM 树中沿着同胞元素向后遍历,而不是向前)。
  • first() 方法返回被选元素的首个元素。
  • last() 方法返回被选元素的最后一个元素。
  • eq() 方法返回被选元素中带有指定索引号的元素。 索引号从 0 开始,因此首个元素的索引号是 0 而不是 1。下面的例子选取第二个

    元素(索引号 1):

  • filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。
  • not() 方法返回不匹配标准的所有元素。
  • 注:not() 方法与 filter() 相反。

实例

  • 左侧菜单
            

                <!DOCTYPE html>
                <html lang="en">
                <head>
                    <meta charset="UTF-8">
                    <title>left_menu</title>

                    <style>
                          .menu{
                              height: 500px;
                               30%;
                              background-color: gainsboro;
                              float: left;
                          }
                          .content{
                              height: 500px;
                               70%;
                              background-color: rebeccapurple;
                              float: left;
                          }
                         .title{
                             line-height: 50px;
                             background-color: #425a66;
                             color: forestgreen;}


                         .hide{
                             display: none;
                         }


                    </style>
                </head>
                <body>

                <div class="outer">
                    <div class="menu">
                        <div class="item">
                            <div class="title">菜单一</div>
                            <div class="con">
                                <div>111</div>
                                <div>111</div>
                                <div>111</div>
                            </div>
                        </div>
                        <div class="item">
                            <div class="title">菜单二</div>
                            <div class="con hide">
                                <div>111</div>
                                <div>111</div>
                                <div>111</div>
                            </div>
                        </div>
                        <div class="item">
                            <div class="title">菜单三</div>
                            <div class="con hide">
                                <div>111</div>
                                <div>111</div>
                                <div>111</div>
                            </div>
                        </div>

                    </div>
                    <div class="content"></div>

                </div>
                <script src="jquery-3.2.1.js"></script>
                <script>
                           $(".item .title").click(function () {
                                $(this).next().removeClass("hide").parent().siblings().children(".con").addClass("hide");

                //                $(this).next().removeClass("hide");
                //                $(this).parent().siblings().children(".con").addClass("hide");
                           })
                </script>


                </body>
                </html>
            
        
  • tab切换
            
                <!DOCTYPE html>
                <html lang="en">
                <head>
                    <meta charset="UTF-8">
                    <title>tab</title>
                    <script>
                           function tab(self){
                               var index=$(self).attr("xxx");
                               $("#"+index).removeClass("hide").siblings().addClass("hide");
                               $(self).addClass("current").siblings().removeClass("current");

                           }
                    </script>
                    <style>
                        *{
                            margin: 0px;
                            padding: 0px;
                        }
                        .tab_outer{
                            margin: 0px auto;
                             60%;
                        }
                        .menu{
                            background-color: #cccccc;
                            /*border: 1px solid red;*/
                            line-height: 40px;
                        }
                        .menu li{
                            display: inline-block;
                        }
                        .menu a{
                            border-right: 1px solid red;
                            padding: 11px;
                        }
                        .content{
                            background-color: tan;
                            border: 1px solid green;
                            height: 300px;
                        }
                        .hide{
                            display: none;
                        }

                        .current{
                            background-color: darkgray;
                            color: yellow;
                            border-top: solid 2px rebeccapurple;
                        }
                    </style>
                </head>
                <body>
                      <div class="tab_outer">
                          <ul class="menu">
                              <li xxx="c1" class="current" onclick="tab(this);">菜单一</li>
                              <li xxx="c2" onclick="tab(this);">菜单二</li>
                              <li xxx="c3" onclick="tab(this);">菜单三</li>
                          </ul>
                          <div class="content">
                              <div id="c1">内容一</div>
                              <div id="c2" class="hide">内容二</div>
                              <div id="c3" class="hide">内容三</div>
                          </div>

                      </div>
                </body>
                </html>
            
        
  • 复制样式条
            
                <!DOCTYPE html>
                <html lang="en">
                <head>
                    <meta charset="UTF-8">
                    <title>Title</title>

                </head>
                <body>
                            <div class="outer">
                                <div class="item">
                                        <input type="button" value="+" onclick="add(this);">
                                        <input type="text">
                                </div>
                            </div>

                <script src="jquery-1.11.3.min.js"></script>
                    <script>
                            //var $clone_obj=$(self).parent().clone();  // $clone_obj放在这个位置可以吗?
                            function add(self){
                                // 注意:if var $clone_obj=$(".outer .item").clone();会一遍二,二变四的增加
                                 var $clone_obj=$(self).parent().clone();
                                 $clone_obj.children(":button").val("-").attr("onclick","removed(this)");
                                 $(self).parent().parent().append($clone_obj);
                            }
                           function removed(self){

                               $(self).parent().remove()

                           }

                    </script>
                </body>
                </html>
            
        
原文地址:https://www.cnblogs.com/caozhenghua/p/11871715.html