jQuery中容易讓人困惑的東西

jqueryt很靈活,太靈活了,可以說是他一個優點,也是他一個缺點,達到一種效果,十個人也許會用十種不同的方法來實現這個過程,結果一樣,過程不一樣,這到底是好,還是壞呢。

AD:

一,什麼是jquery

jQuery是繼prototype之後又一個優秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,寫更少的代碼,做更多的事情。說白了,jquery就是javascript。只不過按照人的習慣思維把它封裝了一個比較強大的框架。還有一點jquery能夠把html和javascript儘量分離,這也是我願意用jquery的一個重要原因。jqueryt很靈活,太靈活了,可以說是他一個優點,也是他一個缺點,達到一種效果,十個人也許會用十種不同的方法來實現這個過程,結果一樣,過程不一樣,這到底是好,還是壞呢。就各說各的理了。

二,學習和使用jquery的困惑

1)$.fn.extend({})和$.extend({})

$.fn.extend是擴展jQuery元素集來提供新的方法(通常用來製作插件)。解釋一下,就是通過$.fn.extend產生的jquery方法在調用jquery時,不會包括括在jquery自身的對象中,它是擴展插件的形勢,繼承的。你可以把它理解爲php中的extend。舉個例子

  1. $.fn.extend({     
  2.   checkname: function() {     
  3.      
  4.    if($.trim($(this).val()) != ""){     
  5.      
  6.        return true;        
  7.      
  8.     }else{     
  9.      
  10.       return false;     
  11.      
  12.     }     
  13.   }     
  14. });     
 

調用時 $("input.name").checkname();

$.extend是擴展jQuery對象本身。解釋一下,就是說通過$.extend產生的jquery方法,在調用jquery時,會包括在jquery自身的對象中。說白了,就是在jquery對象中添加方法,例如

  1. $.extend({     
  2.   checkname: function(name) {     
  3.      
  4.    if($.trim(name!= ""){     
  5.      
  6.        return true;        
  7.      
  8.     }else{     
  9.      
  10.       return false;     
  11.      
  12.     }     
  13.   }     
  14. });     
 

調用時 $.checkname($("input.name").val());

2)$().each({})和$.each({})

$().each({})用來循環數組和對像

  1. <ul>     
  2.   <li><div>Glen</div></li>     
  3.   <li>Tane</li>     
  4.   <li>Ralph</li>     
  5. </ul>     
 

下面是循環對象

  1. $("ul li").each(function(k,v){     
  2.  alert("key="+k+",value="+$(v).html());     
  3. });     
  4. );     
 

下面是循環數組

  1. array = [0,1,2];     
  2. $(array).each(function(k,v){     
  3.  alert("key="+k+",value="+v);     
  4. });     
 

$.each({})可用來循環所有數組和對象,個人覺得他們二個沒什麼差別,除了寫法不一樣外

下面是循環數組

  1. array = [0,1,2];     
  2.  $.each(array,function(k,v){     
  3.   alert("key="+k+",value="+v);     
  4.  });   

下面是循環對象

  1. $.each($("ul li"),function(k,v){     
  2.  alert("key="+k+",value="+$(v).html());     
  3. });     
 

注意:function(k)這裏k是下標,function(k,v)這是k還是下標,v不一定,有可能是數組裏面的一個值,也有可能是一個對象,如果是對象時,如果參數不寫出來,默認情況是this

3),$(" :contains()")和$("  :has()")

$(" :contains()") 匹配包含給定文本的元素,contains裏面包括的是文本內空

$("li:contains('Ra')").css('color','red');

$("  :has()")匹配含有選擇器所匹配的元素的元素,has裏面包話的是一個標籤

$("li:has(div)").css('color','red');

4), $(" :first")和 $(" :first-child")

 $(" :first") 匹配找到的第一個元素

$(" :first-child") 匹配第一個子元素,':first' 只匹配一個元素,而此選擇符將爲每個父元素匹配一個子元素
 
 
  1. <div><ul>     
  2.     <li>list item 1</li>     
  3.     <li>list item 2          
  4.       <ul>     
  5.         <li>list item 2-a</li>     
  6.         <li>list item 2-b</li>     
  7.       </ul>     
  8.     </li>     
  9.     <li>list item 3</li>     
  10.     <li>list item 4</li>     
  11. </ul></div>     
  1. $("ul li:first").css('color','red');        //只匹配第一次,  
  2. $("ul li:first-child").css('color','red');    //匹配每個符合要求的對象  
  3. 5),$().html()和$().text()  
  4. $().html()取得第一個匹配元素的html內容。這個函數不能用於XML文檔。但可以用於XHTML文檔。  
  5. $().text()結果是由所有匹配元素包含的文本內容組合起來的文本。這個方法對HTML和XML文檔都有效。  
  6. <span><p>Hello</p></span> 
  7. $('span').html();    //得到的結果是<p>Hello</p> 
  8. $('span').texxt();    //得到的結果是Hello  
  9. 6),$().empty()和$().remove()  
  10. $().empty() 清空匹配元素中的內空,但不清空自身、  
  11. $().remove(),清空匹配元素中的內空,以及自身  
  12. <span><p>Hello</p></span> 
  13. $('p').empty() //得到的結果是<span><p></p></span> 
  14. $('p').remove() //得到的結果是<span></span> 
轉自:http://developer.51cto.com/art/201204/331860.htm
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章