1:jquery能夠加載多個ready函數,而原始的js只能加載一次onload 2:用dom對象獲得的對象不能使用jquery中的方法,好比var p=document.getElementById("id"),此時p不能這樣使用p.html(),而應該使用innerHTML。一樣,jquery對象不能使用dom中的方法,若是juqery中改寫了dom中的方法,則能夠使用dom中的方法。 3:jquery對象轉換爲dom對象的方法: <input type="text" id="a" value="111111"> var input=$('#a') a:使用索引,alert(input[0].value) b:使用get,alert(input.get[0].value) 4:dom對象轉換爲juqery對象: 用$()把DOM對象包裝起來就OK: var input = document.getElementById('a'); alert($(input).val()); 5:jquery與其餘js庫共存 <script> var sowhat = jQuery.noConflict()//自定義,可代替jQuery 或者直接jQuery.noConflict(),而後用jQuery調用方法便可,注意Q不能小寫,默認是大寫 alert('這是jquery彈出的'+sowhat('#a').val()); alert('這是prtotype彈出的'+$F('a')); </script> 6: >號表示子標籤,項目中通常不用css表達式,由於它不停地計算會使瀏覽器特別卡 $(function(){ $('div>a').css('color','red'); }); <div> <a href="###">abcdefg</a> <p><a href="###">1234567890</a></p> </div> 7:jquery優點: a:兼容性強大,完美支持css1-2.0 b:完美容錯機制,eg:即便沒有對應標籤也不會報錯 8:選擇器: 1:id :$('#id') eg:$('#p1').css('color','red');//代替了#p1{color:red;} 2:calss :$('.p1') eg:$('.p1').css('color','red');//代替了.p1{color:red;} 3:標籤選擇器(不推薦*選擇器) eg:$('p').css('color','red');//代替了.p1{color:red;} 4:多重選擇器 eg: <span>123</span> <div>12312</div> <script> $(function(){ $('p,div').css('color','red'); }); </script> 5:層次選擇器 E F e元素所欲的後代元素 E>F e元素的子元素 E+next e元素後緊鄰的標籤爲next的兄弟元素,等於next() E~siblings e元素後的全部的標籤爲siblings的兄弟元素,等於nextAll() eg:給div標籤後緊鄰的p標籤添加顏色 $('div+p').css('color','red'); $('div').next().css('color','red'); 給div標籤後全部的p標籤添加顏色 $('div~p').css('color','red'); $('div').nextAll().css('color','red'); 6:過濾選擇器:(用法:只舉一例,其餘參考手冊) :first $('p:first').css(); 注意:標籤內嵌套標籤時單引號和雙引號錯開使用,若計算偶數則下標從0算起 7:屬性選擇器 A:<p title="js">safs</p> 選取title爲js的p標籤添加紅色,注意title能夠爲原有標籤,也能夠爲本身自定義的標籤 $('p[title=js]').css('color','red'); 或者$('p[title]').css('color','red'); B:選取含有title和myuu屬性的p元素,注意title能夠爲原有標籤,也能夠爲本身自定義的標籤 $('p[title=js][myuu]').css('color','red'); C:子元素:div的子標籤p的第一個標籤 $('div p:first-child').css('color','red'); 8:表單元素及表單元素屬性選擇器 $(':input[type=checkbox]').val(); $(':input:disabled').val(); $(':input[disabled=disabled]').val(); $('select:selected').val(); 9:dom篩選 $('p:eq(0)').css(); //給指定下標爲0的p標籤添加顏色 $('p').filter('#second').css(); //奇偶數添加 $('p').click(function(){//單擊p標籤給當前添加顏色 if($(this).is('.first')){ $(this).css('backgound','red'); } }); $('p').not(':last').css();//給p標籤添顏色,除了最後一個 $('p').not('#secone').css();//給p標籤添顏色,除了id爲second的p標籤 $('input').map(function(){ //將一組元素轉換爲數組(通常不用,由於有一個序列化的方法比這個更好用) return $(this).val(); }).get().join(',');//,即將三組文本框中的值用逗號隔開並轉爲字符串 slice():$('p').slice(1,5).css();// 選中下標爲1,2,3,4的元素,包含1,不包含5。也可傳入負數 10:dom遍歷查找:(注:返回一組元素的均可以加參數,返回一個的不能加參數) $('#p1').parent().css(); //經過子節點p1找到父節點wrap $('#p1').parents('.outer').css();//選取祖先元素,一般加參數,表示範圍爲class爲outer的標籤爲止 $('p1').offsetParent().css();//offsetParent()返回父元素中第一個其position設爲relative或者absolute的元素,僅對可見元素有效 $('#p2').siblings('div').css();//選擇p2全部的兄弟元素(可加參數) $('span').parent().css('color','red').end().css('color','blue')//先設置紅色再設置成藍色,顏色可重疊。鏈式操做,end()函數 $('input').each(function(){//用的很少,由於效率低,後面有工具函數能夠代替它 alert($(this).val()); }); 11:特殊符號的處理:有的加1個\,有的加2個\\ $('input[name=gender[]]')沒加轉義符,報錯 $('input[name=gender\\[\\]]')加了轉義符,正確 $('input[name=\'checkbox\']')正確 12:表格隔行變色 ----------js代碼----------- var table=document.getElementById('table'); var tr=table.getElementByTagName('tr'); for(var i=0;i<tr.length;i++){ if(i%2==1){ tr[i].style.background('blue'); }else{ tr[i].style.background('red'); } } -----------jquery代碼------- $('table tr:even').css('backgrpund','red'); $('table tr:odd').css('backgrpund','blue'); 使用end()函數能夠優化爲一行代碼: $('table tr').fliter(':even').css().end().fliter(':odd').css() 13:tab標籤頁 $('#ul li').click(function(){ $(this).addClass('current').siblings().removeClass('current');//點擊li的時候切換樣式 $(#content>div).eq($(this).index()).show().siblings().hide();//根據li的索引值,來肯定哪一個div顯示哪一個div隱藏 上面兩行代碼可優化爲一行: $(this).addClass('current').siblings().removeClass('current').parent().next().children().eq($(this).index()).show().siblings().hide(); }); 14:jquery選擇器的優化: a:最快的是id選擇器:能用id獲取到的標籤儘可能不用class選擇器 b:假如p標籤下有一個class爲a,則儘可能:$('p.a'),固然$('.a')這樣寫也能夠。 假若有一個div標籤,id爲a,則直接:$('#id'),必定不要$('div#id')這樣寫。 c:假如div有一個子div,則儘可能使用直接使用id獲取,不要經過父元素找。 d:經過find()來找,儘可能不使用上下文查找 eg:$('li.item-li').find('li').css(); e:鏈式操做比緩存快不少,只有在要經過一個元素查找另外的元素的時候才須要用到緩存,若是直接對某一個元素進行修改,則直接用鏈式操做。 15:dom操做: a:建立節點:分爲內部插入和外部插入。 內部插入:插入後是子元素 外部插入:插入後是兄弟元素 $('body').append('<div>div標籤</div>');//給頁面添加了一個div標籤 或者也能夠這樣寫: var str='<div>div標籤</div>'; $('body').append(str); $('p').append('<div>div標籤</div>');//向p標籤的尾部插入div標籤,div是p的全部子標籤中排序在最後一個 $('<div>div標籤</div>').appendTo('p');//結果和上一句同樣 16:添加樣式 <style> .bg{background:red;} .white{color:#fff;} </style> <script> $('p').addClass('bg white'); $('p').removeClass('bg white'); //toggleClass();//切換樣式 </script> 再好比: <p>11111111</p> <script> /*$('p').css('background','red').css('color','white').css('border','10px solid #abcdef');*/ $('p').css({ 'backgroundColor':'red', 'color':'white', 'border':'10px solid #abcdef' }); //建議你們把css屬性名用引號引發來 </script> 17:jquery中的事件和對象 18:jquery插件編寫(類級別開發,幾乎不用): $.zxit={ //zxit爲命名空間 centerDiv:function(obj){ //centerDiv爲咱們本身自定義的插件方法 obj.css({ 'top':($(window).height()-div.height())/2, 'left':($(window).width()-div.width())/2, 'position':'absolute' }); return obj;//返回和傳入的都是jquery對象 } } 19:jquery插件編寫(對象級別開發,使用率99%): a:官方模板: ;(function($){ $.fn.plugin=function(options){ var defaults = { //各類參數,各類屬性 } var options = $.extend(defaults,options); this.each(function(){ //實現功能的代碼 }); return this; } })(jQuery);
轉載來源:https://www.cnblogs.com/m-xy/p/3705251.htmljavascript