jquery知識點總結


婚假也不能虛度。

  1 1:jquery可以加載多個ready函數,而原始的js只能加載一次onload
  2 2:用dom對象得到的對象不能使用jquery中的方法,比如var p=document.getElementById("id"),此時p不能這樣使用p.html(),而應該使用innerHTML。同樣,jquery對象不能使用dom中的方法,如果juqery中改寫了dom中的方法,則可以使用dom中的方法。
  3 3:jquery對象轉換為dom對象的方法:
  4     <input type="text" id="a" value="111111">
  5     var input=$('#a')
  6     a:使用索引,alert(input[0].value)
  7     b:使用get,alert(input.get[0].value)
  8 4:dom對象轉換為juqery對象:
  9     用$()把DOM對象包裝起來就OK:
 10     var input = document.getElementById('a');
 11     alert($(input).val());
 12 5:jquery與其他js庫共存
 13     <script>
 14         var sowhat = jQuery.noConflict()//自定義,可代替jQuery
 15         或者直接jQuery.noConflict(),然后用jQuery調用方法即可,注意Q不能小寫,默認是大寫
 16         alert('這是jquery彈出的'+sowhat('#a').val());
 17         alert('這是prtotype彈出的'+$F('a'));
 18     </script>
 19 6: >號表示子標簽,項目中一般不用css表達式,因為它不停地計算會使瀏覽器特別卡
 20     $(function(){
 21         $('div>a').css('color','red');
 22     });
 23     <div>
 24         <a href="###">abcdefg</a>
 25         <p><a href="###">1234567890</a></p>
 26     </div>
 27 7:jquery優勢:
 28     a:兼容性強大,完美支持css1-2.0
 29     b:完美容錯機制,eg:即使沒有對應標簽也不會報錯
 30 8:選擇器:
 31     1:id    :$('#id')  
 32     eg:$('#p1').css('color','red');//代替了#p1{color:red;} 
 33     2:calss :$('.p1')
 34     eg:$('.p1').css('color','red');//代替了.p1{color:red;} 
 35     3:標簽選擇器(不推薦*選擇器)
 36     eg:$('p').css('color','red');//代替了.p1{color:red;}
 37     4:多重選擇器
 38     eg: <span>123</span>
 39          <div>12312</div>
 40          <script>
 41          $(function(){
 42              $('p,div').css('color','red');
 43          });
 44          </script>
 45     5:層次選擇器
 46         E   F  e元素所欲的后代元素
 47         E>F  e元素的子元素
 48         E+next  e元素后緊鄰的標簽為next的兄弟元素,等於next()
 49         E~siblings  e元素后的所有的標簽為siblings的兄弟元素,等於nextAll()
 50         eg:給div標簽后緊鄰的p標簽添加顏色
 51            $('div+p').css('color','red');
 52            $('div').next().css('color','red');
 53            給div標簽后所有的p標簽添加顏色
 54            $('div~p').css('color','red');
 55            $('div').nextAll().css('color','red');
 56     6:過濾選擇器:(用法:只舉一例,其他參考手冊)
 57         :first
 58         $('p:first').css();       
 59         注意:標簽內嵌套標簽時單引號和雙引號錯開使用,若計算偶數則下標從0算起
 60     7:屬性選擇器
 61         A:<p title="js">safs</p>
 62         選取title為js的p標簽添加紅色,注意title可以為原有標簽,也可以為自己自定義的標簽
 63         $('p[title=js]').css('color','red');
 64         或者$('p[title]').css('color','red');
 65         B:選取含有title和myuu屬性的p元素,注意title可以為原有標簽,也可以為自己自定義的標簽
 66         $('p[title=js][myuu]').css('color','red');
 67         C:子元素:div的子標簽p的第一個標簽
 68         $('div p:first-child').css('color','red');
 69     8:表單元素及表單元素屬性選擇器 
 70         $(':input[type=checkbox]').val();   
 71         $(':input:disabled').val();   
 72         $(':input[disabled=disabled]').val(); 
 73         $('select:selected').val();
 74 9:dom篩選        
 75     $('p:eq(0)').css();    //給指定下標為0的p標簽添加顏色     
 76     $('p').filter('#second').css(); //奇偶數添加    
 77     $('p').click(function(){//單擊p標簽給當前添加顏色
 78        if($(this).is('.first')){
 79           $(this).css('backgound','red');
 80        }
 81     });
 82     $('p').not(':last').css();//給p標簽添顏色,除了最后一個
 83     $('p').not('#secone').css();//給p標簽添顏色,除了id為second的p標簽
 84     $('input').map(function(){ //將一組元素轉換為數組(一般不用,因為有一個序列化的方法比這個更好用)
 85         return $(this).val();
 86     }).get().join(',');//,即將三組文本框中的值用逗號隔開並轉為字符串
 87     slice():$('p').slice(1,5).css();//    選中下標為1,2,3,4的元素,包含1,不包含5。也可傳入負數
 88 10:dom遍歷查找:(注:返回一組元素的都可以加參數,返回一個的不能加參數)
 89     $('#p1').parent().css(); //通過子節點p1找到父節點wrap
 90     $('#p1').parents('.outer').css();//選取祖先元素,通常加參數,表示范圍為class為outer的標簽為止
 91     $('p1').offsetParent().css();//offsetParent()返回父元素中第一個其position設為relative或者absolute的元素,僅對可見元素有效
 92     $('#p2').siblings('div').css();//選擇p2所有的兄弟元素(可加參數)
 93     $('span').parent().css('color','red').end().css('color','blue')//先設置紅色再設置成藍色,顏色可重疊。鏈式操作,end()函數
 94     $('input').each(function(){//用的不多,因為效率低,后面有工具函數可以代替它
 95        alert($(this).val());
 96     });
 97 11:特殊符號的處理:有的加1個\,有的加2個\\
 98     $('input[name=gender[]]')沒加轉義符,報錯
 99     $('input[name=gender\\[\\]]')加了轉義符,正確
100     $('input[name=\'checkbox\']')正確
101 12:表格隔行變色
102     ----------js代碼-----------
103     var table=document.getElementById('table');
104     var tr=table.getElementByTagName('tr');    
105     for(var i=0;i<tr.length;i++){
106         if(i%2==1){
107             tr[i].style.background('blue');
108         }else{
109             tr[i].style.background('red');
110         }
111     }
112     -----------jquery代碼-------
113     $('table tr:even').css('backgrpund','red');
114     $('table tr:odd').css('backgrpund','blue');
115     使用end()函數可以優化為一行代碼:
116     $('table tr').fliter(':even').css().end().fliter(':odd').css()
117 13:tab標簽頁
118     $('#ul li').click(function(){
119         $(this).addClass('current').siblings().removeClass('current');//點擊li的時候切換樣式
120         $(#content>div).eq($(this).index()).show().siblings().hide();//根據li的索引值,來確定哪個div顯示哪個div隱藏
121         上面兩行代碼可優化為一行:
122         $(this).addClass('current').siblings().removeClass('current').parent().next().children().eq($(this).index()).show().siblings().hide();
123     });    
124 14:jquery選擇器的優化:
125     a:最快的是id選擇器:能用id獲取到的標簽盡量不用class選擇器
126     b:假如p標簽下有一個class為a,則盡量:$('p.a'),當然$('.a')這樣寫也可以。
127        假如有一個div標簽,id為a,則直接:$('#id'),一定不要$('div#id')這樣寫。
128     c:假如div有一個子div,則盡量使用直接使用id獲取,不要通過父元素找。
129     d:通過find()來找,盡量不使用上下文查找
130         eg:$('li.item-li').find('li').css();
131     e:鏈式操作比緩存快很多,只有在要通過一個元素查找另外的元素的時候才需要用到緩存,如果直接對某一個元素進行修改,則直接用鏈式操作。    
132 15:dom操作:
133     a:創建節點:分為內部插入和外部插入。
134     內部插入:插入后是子元素
135     外部插入:插入后是兄弟元素
136     $('body').append('<div>div標簽</div>');//給頁面添加了一個div標簽
137     或者也可以這樣寫:
138     var str='<div>div標簽</div>';
139     $('body').append(str);
140     $('p').append('<div>div標簽</div>');//向p標簽的尾部插入div標簽,div是p的所有子標簽中排序在最后一個
141     $('<div>div標簽</div>').appendTo('p');//結果和上一句一樣
142 16:添加樣式
143     <style>
144        .bg{background:red;}
145        .white{color:#fff;}
146     </style>
147     <script>
148         $('p').addClass('bg white');
149         $('p').removeClass('bg white');
150         //toggleClass();//切換樣式
151     </script>
152     再比如:
153     <p>11111111</p>
154     <script>
155         /*$('p').css('background','red').css('color','white').css('border','10px solid #abcdef');*/
156         $('p').css({
157             'backgroundColor':'red',
158             'color':'white',
159             'border':'10px solid #abcdef'
160         });
161         //建議大家把css屬性名用引號引起來
162     </script>
163 17:jquery中的事件和對象
164 18:jquery插件編寫(類級別開發,幾乎不用):
165     $.zxit={  //zxit為命名空間
166     centerDiv:function(obj){  //centerDiv為我們自己自定義的插件方法
167         obj.css({
168             'top':($(window).height()-div.height())/2,
169             'left':($(window).width()-div.width())/2,
170             'position':'absolute'
171         });
172         
173         return obj;//返回和傳入的都是jquery對象
174     }
175 }
176 19:jquery插件編寫(對象級別開發,使用率99%):
177     a:官方模板:
178         ;(function($){
179             $.fn.plugin=function(options){
180             var defaults = {
181             //各種參數,各種屬性
182             }
183             var options = $.extend(defaults,options);
184 
185             this.each(function(){
186             //實現功能的代碼
187             });
188             return this;
189             }
190         })(jQuery);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM