jQuery 学习总结

Posted yangl517

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery 学习总结相关的知识,希望对你有一定的参考价值。

jQuery : write less , do more
1.  window.onload与$(document).ready()区别
           window.onload
                  网页中所有内容加载完毕(包括图片等 元素的所有关联文件)才执行
                 不能同时编写多个,只能保存对一个函数的引用
                 ps 如想达到多个函数顺序触发的效果
                      window . onload = function()
                           one();
                           two();
                    
  
         $(document) . ready(function())
                 网页中所有dom结构绘制完毕(与dom关联的东西并没有加载完)就执行
                 能同时编写多个,在现有行为上追加新行为
                 简写为: $(function() );
                             $().ready(function())
                注册的事件只要dom就绪就会被执行
  
         load() : jQuery关于页面加载的另一个函数
                    在元素的onload事件中绑定一个处理函数,如处理函数绑定给window对象,

                    则会在所有内容加载完后触发,如绑定在元素上,则会在元素加载完毕后触发
                   $(window).load(function());   //等价于window.onload = function()
   
2.  end() :
               $("div").addClass('active')      //div添加active属性
                    .siblings().removeClass('active')
                              //移除div同辈的active属性,此时对象已变成$('div').siblings()
                   .end()  //重新返回$('div')对象
                   .find(':radio').attr('checked',true);

3. DOM 文档对象模型
                    通过document.getElementsByTagName、document.getElementByIdx_x_x

                    得到的DOM元素就是DOM对象
  
                   < div id='foo' >test< /div >
                   获得div中的html代码
                         1. document.getElementByIdx_x_x('#foo').innerHTML;
                         2.$('#foo').html();
                  jQuery对象转DOM对象
                       var $1 = $('#foo')    //jQuery对象
                       var obj = $1[0]       //DOM对象
                       var obj = $1.get(0)   //DOM对象
                 DOM对象转jQuery对象
                        var obj = document.getElementByIdx_x_x('foo');     //DOM对象
                         var $1 = $(obj)     //jQuery对象
  
4.  判断checkbox是否被选中:
              DOM:
                     var cb = document.getElementByIdx_x_x('cb');
                     alert(cb.checked);
              jQuery:
                     var cb = $('#cb');
                     alert(cb.is(':checked'));

5.  jQuery在其他js库后导入,所有js库加载完毕
               1). jQuery将$ 变量的控制权交给其他js库
                           jQuery.noConflict();
                           jQuery(function()
                                    jQuery('#foo').click(function()      //使用jQuery代替$
     
                                     );
                           );
  
                2). 自定义一个快捷方式:
                            $j = jQuery.noConflict();    //此时$j相当于$ 的作用
                            $j(function()
                                  $j('#foo').click(function()
     
                                  );
                           );
   
  
               3). 函数内部仍然使用$,同时又避免了和其他js库的$ 冲突
                           a.
                                jQuery.noConflict();
                                jQuery(function($)
                                     $('#foo').click(function()
      
                                     );  
                               );
                          b.
                               jQuery.noConflict();
                                   (function($)             // 定义匿名函数,形参为$
                                          $(function()
                                                    $('#foo').click(function()
       
                                          );
                                   );
                             )(jQuery);     // 执行匿名函数,并传递实参jQuery
    
              jQuery库在其他库之前导入
                       无需调用jQuery.noConflict();
  
6.  css选择器:
              < div id='foo' class='foo' >登录< /div >
               < p >< h2 >段落< /h2 >< /p >
                1).  标签选择器   
                         div
                2).  ID选择器
                         #foo
                3).  class选择器
                        .foo
                4).  群组选择器
                        div,p
                5).  后代选择器:
                         h2
                6).  统配选择符
                      *
7.  css字体加粗
          font-weight : bold;
  
8.  document.getElementByIdx_x_x('foo').style.color = 'red';
          如页面没有id='foo'的元素,会报错
    $('#foo').css('color','red');
         页面没有id='foo'的元素,不会报错

9.  检查元素是否在页面上存在:
              $('#foo')           //获取的永远是对象,不能作为判断依据
              $('#foo').length > 0    //true表示元素存在
              $('#foo')[0]            //转化成DOM对象,true表示元素存在

  
10.
      基本选择器:
               选取所有的div,span, id为foo,class为myclass的p标签的一组元素:
                      $("div,span,#foo,p.myclass")
  
      层次选择器:
              $("div span") : 选取

元素里的所有的 元素,选择的是后代元素
                                     //改变body内所有div的背景色,后代元素
                                     $("body div").css("background","#bbffaa");   
    
              $("div > span") : 选取 元素下元素名为的子元素
                                          $('body > div').css("background","#bbffaa");
                                         //改变body内子 元素的背景色,一级子元素,不包括子div内部的div元素  
  
               $(".one + div") : 选取class为one的下一个div元素(紧跟在class为one的元素的后面的div元素)
                                          等价于 $(".one").next("div");
                                          //改变紧邻class为one的div元素的背景色
               $(".one + div").css("background","#bbffaa");   
  
               $("#two ~ div") : 选取id为two的元素后面的所有 兄弟元素(和id为two的元素同级的div元素)
                                           等价于$("#two").nextAll('div');
                                           //改变id为two元素后面的兄弟div的背景色
                                          $("#two ~ div").css("background","#bbffaa");    
               $("#two").siblings("div") : 选取id为two元素的所有同辈div元素,不分前后
 
      过滤选择器:选择器以:开头
                1). 基本过滤选择器:
                              :first    
                                     $("div:first") :选取所有 元素中的第一个div元素
                                     //改变第一个div元素的背景色
                                     $("div:first").css("background","#bbffaa");   
                              :last    
                                    $("div:last") :选取所有 元素中的最后一个div元素
                                     //改变最后一个div元素的背景色
                                    $("div:last").css("background","#bbffaa");   
                             :not
                                    $("input:not('.myclass')") :选取class不是myclass的input元素
                                   //改变class不为one的div元素的背景色
                                   $("div:not('.one')").css("background","#bbffaa"); 
                            :even
                                   $("input:even"):选取索引是偶数的input元素,索引从0开始
                                   //改变索引值为偶数的div元素的背景色
                                   $("div:even").css("background","#bbffaa");    
                            :odd
                                    $("input:odd"):选取索引是奇数的input元素,索引从0开始
                                   //改变索引值为奇数的div元素的背景色
                                   $("div:odd").css("background","#bbffaa"); 
                            :eq
                                   $("input:eq(1)"):选取索引为1的input元素
       
                            :gt
                                   $("input:gt(1)"):选取索引大于1的input元素
                                  //改变索引值大于3的div元素的背景色
                                 $("div:gt(3)").css("background","#bbffaa");   
                            :lt
                                 $("input:lt(1)"):选取索引小于1的input元素
                                 //改变索引值小于3的div元素的背景色
                                $("div:lt(3)").css("background","#bbffaa");    
                           :header
                                 $(":header"):选取网页中所有的标题元素


                                 //改变标题元素的背景色
                                  $(":header").css("background","#bbffaa");     
                           :animated
                                  $("div:animated"):选取正在执行动画的div元素
                                 //改变正在执行动画的元素的背景色
                                 $(":animated").css("background","#bbffaa");    

              2). 内容过滤选择器:
                            :contains(text)
                                     $("div:contains('我')"): 选取含有文本‘我’的div元素
                                     //改变含有文本'di'的div元素的背景色
                                    $("div:contains('di')").css("background","#bbffaa");  
     
                            :empty    选取不包含子元素或文本的空元素
                                         //改变不含子元素(包括文本元素)的div元素的背景色
                                          $("div:empty").css("background","#bbffaa");
     
                            :has(selector) 选取含有selector所匹配的元素的元素
                                                  //改变含有class为mini元素的div元素的背景色
                                                 $("div:has('.mini')").css("background","#bbffaa");   
                            :parent   选取含有子元素或文本的元素
                                            //改变含有子元素(包括文本元素)的div元素的背景色
                                              $("div:parent").css("background","#bbffaa");

                3). 可见性过滤选择器
                            :hidden   选取所有不可见性元素(像display:none,type="hidden",visible:hidden等)
                                           //改变所有不可见的div元素的背景色,且3s后完全显示
                                            $("div:hidden").css("background","#bbffaa").show(3000);   
                            :visible  选取所有可见性元素
                                         //改变所有可见的div元素的背景色
                                         $("div:visible").css("background","#bbffaa"); 
     
                4). 属性过滤选择器 (通过属性获取元素)
                              [attribute]  选取拥有此属性的元素
                                               //改变有title属性的div元素的背景色
                                              $("div[title]").css("background","#bbffaa");  
    
                              [attribute=value]  选取属性值为value的元素
                                                             //改变title=test的div元素的背景色
                                                             $("div[title=test]").css("background","#bbffaa");  
                              [attribute!=value]  选取属性值不等于value的元素
                                                            //改变title!=test的div元素的背景色,包含没有title属性的div元素
                                                            $("div[title!=test]").css("background","#bbffaa");   
                              [attribute^=value]  选取属性值以value开头的元素
                                                               //改变title以te开头的div元素的背景色
                                                               $("div[title^=te]").css("background","#bbffaa");   
                              [attribute$=value]  选取属性值以value结尾的元素
                                                              //改变title以sst结尾的div元素的背景色
                                                              $("div[title$=sst]").css("background","#bbffaa");  
                              [attribute*=value]  选取属性值含有value的元素
                                                              //改变title属性值中含有ss的div元素的背景色
                                                              $("div[title*=ss]").css("background","#bbffaa");   
                             [selector1][selector2][selector3]
                                                     //改变含有id属性,切title属性值中含有es的div元素的背景色
                                                     $("div[id][title*=es]").css("background","#bbffaa");  

             5). 子元素过滤选择器
                         :nth-child(index/even/odd/eq)  选取每个父元素下的第index子元素或奇偶元素,

                                                                                index从1开始
                                                                              //改变每个class为one的div中,第二个子元素的背景色
                                                             

以上是关于jQuery&nbsp;学习总结的主要内容,如果未能解决你的问题,请参考以下文章

jQuery学习笔记之过滤器之二

JQuery知识点总结

JQuery的遍历函数总结

黑马day16 jquery&amp;层次选择器

jQuery遍历-后代

Jquery选择器学习记录