標籤:one 第一個 綁定 first jquer -- 整理 nic uri
一.子項目選取器.:nth-child:匹配父元素下的第N個子或者奇偶元素.注意:序號是從1開始的,而eq是從0開始計數的!它匹配的是前方選取器選擇到的元素的父元素下面的第幾個元素.例如:ul li:first-child:匹配的是<ul>下面的這個<li>的父元素的第一個孩子.判斷是否為li.見下面的代碼:
<ul> <a href="#"></a> <li> <ul> <!--此行的li被選中,因為是其父類元素的第一個子項目, 如果將上面的選擇條件改為ul>li:first-child的話,則沒有元素被選中--> <a><li></li></a> <li></li> </ul> </li> </ul>
二.jQuery的id選取器,class選取器,名稱選取器也可以取交集,但是中間不能加逗號,也不能有任何空格!例如:$("div.div#one")
三.jQuery對象的remove方法和detach和empty方法.empty方法與兩者有本質的區別,empty方法刪除的是選取器匹配的元素的子類元素,而保留選取器的元素(即該方法刪除所有子類元素),remove方法會刪除匹配的元素,並通過傳回值返回.但是這個方法的返回的元素中會刪除綁定的事件.(注意:只能刪除在<script>標籤中的事件,而綁定在標籤上的事件將不會刪除.)而detach方法則不會刪除事件.
四.body中的Onload函數和jQuery中的ready函數的區別:
1.onload函數只能調用一次.如果多次調用,後調用的會把前者覆蓋,ready方法可以多次調用
2.ready函數在DOM載入完後就會調用,而onload方法需要等待大部分視頻音頻載入完才調用
五.jQuery完成編碼,有兩組方法,encodeURI和decodeURI,以及encodeURIComponent和decodeURIComponent方法.
<script type="text/javascript">//escape()不能直接用於URL編碼,它的真正作用是返回一個字元的Unicode編碼值。比如"春節"的返回結果是%u6625%u8282,escape()不對"+"編碼 主要用於漢字編碼。alert(escape("春節"));alert(unescape(escape("春節")));//encodeURI()是用來對URL編碼的函數。 編碼整個url地址,但對特殊含義的符號"; / ? : @ & = + $ , #"不進行編碼。對應的解碼函數是:decodeURI()。alert(encodeURI(‘http://baidu.com?hello=您好&word=文檔‘));alert(decodeURI(encodeURI(‘http://baidu.com?hello=您好&word=文檔‘)));//encodeURIComponent() 能編碼"; / ? : @ & = + $ , #"這些特殊字元。對應的解碼函數是decodeURIComponent()。alert(encodeURIComponent(‘http://baidu.com?hello=您好&word=文檔‘));alert(decodeURIComponent(encodeURIComponent(‘http://baidu.com?hello=您好&word=文檔‘))); </script>
六.jQuery的移動元素可以有兩種方法:例如:假定我們選中了一個div元素,需要把它移動到p元素後面。
第一種方法是使用.insertAfter(),把div元素移動p元素後面:
$(‘div‘).insertAfter($(‘p‘));
第二種方法是使用.after(),把p元素加到div元素前面:
$(‘p‘).after($(‘div‘));
表面上看,這兩種方法的效果是一樣的,唯一的不同似乎只是操作視角的不同。但是實際上,它們有一個重大差別,那就是返回的元素不一樣。第一種方法返回div元素,第二種方法返回p元素。需要根據需要,選擇到底使用哪一種方法。
七.jQuery的事件委託處理.
javascript的事件模型,採用"冒泡"模式,也就是說,子項目的事件會逐級向上"冒泡",成為父元素的事件。也就是說,一個事件,如果在子項目上未定義某個事件,那麼該事件會在其父類元素上一直向外傳播,直到被處理或者到達對象層次的最頂層.例如,在處理一個表格的時候,假設表格有100行,每一行都要求點擊的時候會觸發事件,那麼可能會寫下面的代碼:
$("td").click(function() { alert("click!");});
雖然可以這樣做,但是這樣做是及其沒有效率的,由於事件的冒泡傳播的特性,那麼實際上可以這麼處理:
$("table").click(function() { alert("click!");//採用父類元素集中處理});
這種方式大大的提高了效率.
八.jQuery的一些提高效能的方法:
1.少改動DOM結構,不要頻繁使用.append()、.insertBefore()和.insetAfter()這樣的方法。
2.js的原生函數效率要高,用js提供的for,while迴圈速度要比$.each要快
3.由於js採用的是鏈式範圍的規則,因此對於變數能夠聲明為較近的局部變數就這麼聲明.
jQuery學習筆記整理