jQuery 學習九(篩選)

●  eq(index) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 獲取第 N 個元素。 
  3.  * 
  4.  * @index(Integer) 元素在 jQuery 對象中的索引 
  5.  * @return Object 
  6.  * @owner jQuery Object 
  7.  */  
  8. function eq(index);  
  9.   
  10. // 例子:獲取匹配的第二個元素。  
  11. <p> This is just a test.</p>  
  12. <p> So is this</p>  
  13.   
  14. $("p").eq(1) ->  [ <p> So is this</p> ]  


    ●  filter(expr) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 篩選出與指定表達式匹配的元素集合。 
  3.  * 這個方法用於縮小匹配的範圍。用逗號分隔多個表達式。 
  4.  * 
  5.  * @expr(Expression) 過濾表達式 
  6.  * @return Object 
  7.  * @owner jQuery Object 
  8.  */  
  9. function filter(expr);  
  10.   
  11. // 例子一:保留帶有 select 類的元素。  
  12. <p>Hello</p>  
  13. <p>Hello Again</p>  
  14. <p class="selected">And Again</p>  
  15. <p> So is this</p>  
  16.   
  17. $("p").filter(".selected") ->  [ <p class="selected">And Again</p> ]  
  18.   
  19. // 例子二:保留第一個以及帶有 select 類的元素。  
  20. <p>Hello</p>  
  21. <p>Hello Again</p>  
  22. <p class="selected">And Again</p>  
  23.   
  24. $("p").filter(".selected, :first") -> [ <p>Hello</p>, <p class="selected">And Again</p> ]  


    ●  filter(fn) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 篩選出與指定函數返回值匹配的元素集合。 
  3.  * 這個函數內部將對每個對象計算一次(正如 "$.each")。 
  4.  * 如果調用的函數返回 false 則這個元素被刪除,否則就會保留。 
  5.  * 
  6.  * @fn(Function) 傳遞進 filter 的函數 
  7.  * @return Object 
  8.  * @owner jQuery Object 
  9.  */  
  10. function filter(fn);  
  11.   
  12. // 例子:保留子元素中不含有 ol 的元素。  
  13. <p>  
  14.   <ol>  
  15.     <li>Hello</li>  
  16.   </ol>  
  17. </p>  
  18. <p>How are you?</p>   
  19.   
  20. $("p").filter(function(index) {  
  21.   return $("ol"this).length == 0;  
  22. });  ->  [ <p>How are you?</p> ]  


    ●  hasClass(class) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 檢查當前的元素是否含有某個特定的類,如果有,則返回 true。 
  3.  * 這其實就是 is("." + class)。 
  4.  * 
  5.  * @class(String) 用於匹配的類名 
  6.  * @return boolean 
  7.  * @owner jQuery Object 
  8.  */  
  9. function hasClass(class);  
  10.   
  11. // 例子:給包含有某個類的元素進行一個動畫。  
  12. <div class="protected"></div>  
  13. <div></div>  
  14.   
  15. $("div").click(function() {  
  16.   if ( $(this).hasClass("protected") )  
  17.     $(this)  
  18.       .animate({ left: -10 })  
  19.       .animate({ left: 10 })  
  20.       .animate({ left: -10 })  
  21.       .animate({ left: 10 })  
  22.       .animate({ left: 0 });  
  23. });  


    ●  is(expr) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 用一個表達式來檢查當前選擇的元素集合,如果其中至少有一個元素符合這個給定的表達式就返回 true。 
  3.  * 如果沒有元素符合,或者表達式無效,都返回 false。filter 內部實際也是在調用這個函數,所以,filter() 
  4.  * 函數原有的規則在這裏也適用。 
  5.  * 
  6.  * @expr(String) 用於篩選的表達式 
  7.  * @return boolean 
  8.  * @owner jQuery Object 
  9.  */  
  10. function is(expr);  
  11.   
  12. // 例子:由於 input 元素的父元素是一個表單元素,所以返回 true。  
  13. <form>  
  14.   <input type="checkbox" />  
  15. </form>  
  16.   
  17. $("input[type='checkbox']").parent().is("form") = true  


    ●  map(callback) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 將一組元素轉換成其他數組(不論是否是元素數組)。 
  3.  * 你可以用這個函數來建立一個列表,不論是值、屬性還是 CSS 樣式,或者其他特別形式。這都可以用 
  4.  * $.map() 來方便的建立。 
  5.  * 
  6.  * @callback(Function) 給每個元素執行的函數 
  7.  * @return jQuery Object 
  8.  * @owner jQuery Object 
  9.  */  
  10. function map(callback);  
  11.   
  12. // 例子:把 form 中的每個 input 元素的值建立一個列表。  
  13. <form>  
  14.   <input type="text" name="name" value="John"/>  
  15.   <input type="text" name="password" value="password"/>  
  16.   <input type="text" name="url" value="http://ejohn.org/"/>  
  17. </form>  
  18.   
  19. /** 
  20.  * callback 裏的 this 代表的是 DOM 元素,$(this) 則把 DOM 對象轉換爲 jQuery 對象。 
  21.  * map 函數返回的是 jQuery Object 
  22.  */  
  23. var result = $(function() {  
  24.   $("input").map(function() {  
  25.     return $(this).val();  
  26.   });  
  27. }); ->   
  28. result[0] = "John"  
  29. result[1] = "password"  
  30. result[2] = "http://ejohn.org/"  


    ●  not(expr) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 刪除與指定表達式匹配的元素。 
  3.  * 
  4.  * @expr(String, DOMElement, Array<DOMElement>) 一個表達式、一個元素或者一組元素 
  5.  * @return jQuery Object 
  6.  * @owner jQuery Object 
  7.  */  
  8. function not(expr);  
  9.   
  10. // 例子:從 p 元素中刪除 id 爲 "selected" 的元素。  
  11. <p>Hello</p>  
  12. <p id="selected">Hello Again</p>  
  13.   
  14. $("p").not( $("#selected")[0] ) -> [ <p>Hello</p> ]  


    ●  slice(start, [end]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 選取一個匹配的子集。 
  3.  * 
  4.  * @start(Integer) 開始選取子集的位置。第一個元素是 0.如果是負數,則可以從集合的尾部開始選起。 
  5.  * @end(Integer) (可選) 結束選取自己的位置,如果不指定,則就是本身的結尾。 
  6.  * @return jQuery Object 
  7.  * @owner jQuery Object 
  8.  */  
  9. function slice(start, [end]);  
  10.   
  11. // 例子一:選擇第一個 p 元素。  
  12. <p>Hello</p>  
  13. <p>cruel</p>  
  14. <p>World</p>  
  15.   
  16. $("p").slice(0, 1).wrapInner("<b></b>") -> [ <p><b>Hello</b></p> ]  
  17.   
  18. // 例子二:選擇前兩個 p 元素。  
  19. <p>Hello</p>  
  20. <p>cruel</p>  
  21. <p>World</p>  
  22.   
  23. $("p").slice(0, 2).wrapInner("<b></b>") -> [ <p><b>Hello</b></p>,<p><b>cruel</b></p> ]  
  24.   
  25. // 例子三:只選取第二個 p 元素。  
  26. <p>Hello</p>  
  27. <p>cruel</p>  
  28. <p>World</p>  
  29.   
  30. $("p").slice(1, 2).wrapInner("<b></b>") -> [ <p><b>cruel</b></p> ]  
  31.   
  32. // 例子四:只選取第二和第三個 p 元素。  
  33. <p>Hello</p>  
  34. <p>cruel</p>  
  35. <p>World</p>  
  36.   
  37. $("p").slice(1).wrapInner("<b></b>") -> [ <p><b>cruel</b></p>, <p><b>World</b></p> ]  
  38.   
  39. // 例子五:選取第最後一個 p 元素。  
  40. <p>Hello</p>  
  41. <p>cruel</p>  
  42. <p>World</p>  
  43.   
  44. $("p").slice(-1).wrapInner("<b></b>") -> [ <p><b>World</b></p> ]  


    ●  add(expr) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 把與表達式匹配的元素添加到 jQuery 對象中。這個函數可以用於連接分別與兩個表達式匹配的元素結果集。 
  3.  * 
  4.  * @expr(String, DOMElement, Array<DOMElement>) 用於匹配元素並添加的表達式字符串,或者用於動態生成 
  5.  *                                              的 HTML 代碼,如果是一個字符串數組則返回多個元素 
  6.  * @return jQuery Object 
  7.  * @owner jQuery Object 
  8.  */  
  9. function add(expr);  
  10.   
  11. // 例子一:添加一個新元素到一組匹配的元素中,並且這個新元素能匹配給定的表達式。  
  12. <p>Hello</p>  
  13. <span>Hello Again</span>  
  14.   
  15. $("p").add("span") -> [ <p>Hello</p>, <span>Hello Again</span> ]  
  16.   
  17. // 例子二:動態生成一個元素並添加至匹配的元素中。  
  18. <p>Hello</p>  
  19.   
  20. $("p").add("<span>Again</span>") -> [ <p>Hello</p>, <span>Hello Again</span> ]  
  21.   
  22. // 例子三:爲匹配的元素添加一個或者多個元素。  
  23. <p>Hello</p>  
  24. <p><span id="a">Hello Again</span></p>  
  25.   
  26. $("p").add(document.getElementById("a")) ->   
  27. [ <p>Hello</p>, <p><span id="a">Hello Again</span></p>, <span id="a">Hello Again</span> ]  


    ●  children([expr]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 取得一個包含匹配的元素集合中每一個元素的所有子元素的元素集合。可以通過可選的表達式來過濾所匹配的 
  3.  * 子元素。注意:parents() 將查找所有祖輩元素,而 children() 只考慮子元素而不考慮所有後代元素。 
  4.  * 
  5.  * @expr(String) (可選) 用以過濾子元素的表達式 
  6.  * @return jQuery Object 
  7.  * @owner jQuery Object 
  8.  */  
  9. function children([expr]);  
  10.   
  11. // 例子一:查找 DIV 中的每個子元素。  
  12. <p>Hello</p>  
  13. <div><span>Hello Again</span></div>  
  14. <p>And Again</p>  
  15.   
  16. $("div").children() -> [ <span>Hello Again</span> ]  
  17.   
  18. // 例子二:在每個 div 中查找 .selected 的類。  
  19. <div>  
  20.   <span>Hello</span>  
  21.   <p class="selected">Hello Again</p>  
  22.   <p>And Again</p>  
  23. </div>  
  24.   
  25. $("div").children(".selected") ->  <p class="selected">Hello Again</p> ]  


    ●  contents() 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 查找匹配元素內部所有的子節點(包括文本節點)。如果元素是一個 iframe,則查找文檔內容。 
  3.  * 
  4.  * @return jQuery Object 
  5.  * @owner jQuery Object 
  6.  */  
  7. function contents();  
  8.   
  9. // 例子一:查找所有文本節點並加粗。  
  10. <p>Hello <a href="http://ejohn.org/">John</a>, how are you doing?</p>  
  11.   
  12. $("p").contents().not("[nodeType=1]").wrap("<b/>") ->   
  13. <p><b>Hello</b> <a href="http://ejohn.org/">John</a>, <b>how are you doing?</b></p>  
  14.   
  15. // 例子二:往一個空框架中加些內容。  
  16. <iframe src="/index-blank.html" width="300" height="100"></iframe>  
  17.   
  18. $("iframe").contents().find("body").append("I'm in an iframe!")  


    ●  find(expr) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 搜索所有與指定表達式匹配的元素。這個函數是找出正在處理的元素的後代元素的好方法。 
  3.  * 所有搜索都依靠 jQuery 表達式來完成。這個表達式可以使用 CSS1-3 的選擇器語法來寫。 
  4.  * 
  5.  * @expr(String) 用於查找的表達式 
  6.  * @return jQuery Object 
  7.  * @owner jQuery Object 
  8.  */  
  9. function find(expr);  
  10.   
  11. // 例子:從所有的段落開始,進一步搜索下面的 span 元素。與 $("p span") 相同。  
  12. <p><span>Hello</span>, how are you?</p>  
  13.   
  14. $("p").find("span") -> [ <span>Hello</span> ]  


    ●  next([expr]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 取得一個包含匹配的元素集合中每一個元素緊鄰的後面同輩元素的元素集合。 
  3.  * 這個函數只返回後面那個緊鄰的同輩元素,而不是後面所有的同輩元素(可以使用nextAll)。 
  4.  * 可以用一個可選的表達式進行篩選。 
  5.  * 
  6.  * @expr(String) (可選) 用於篩選的表達式 
  7.  * @return jQuery Object 
  8.  * @owner jQuery Object 
  9.  */  
  10. function next([expr]);  
  11.   
  12. // 例子一:找到每個段落的後面緊鄰的同輩元素。  
  13. <p>Hello</p>  
  14. <p>Hello Again</p>  
  15. <div><span>And Again</span></div>  
  16.   
  17. $("p").next() -> [ <p>Hello Again</p>, <div><span>And Again</span></div> ]  
  18.   
  19. // 例子二:找到每個段落的後面緊鄰的同輩元素中類名爲 selected 的元素。  
  20. <p>Hello</p>  
  21. <p class="selected">Hello Again</p>  
  22. <div><span>And Again</span></div>  
  23.   
  24. $("p").next(".selected") -> [ <p class="selected">Hello Again</p> ]  


    ●  nextAll([expr]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 查找當前元素之後所有的同輩元素。可以用表達式進行過濾。 
  3.  * 
  4.  * @expr(String) (可選) 用於篩選的表達式 
  5.  * @return jQuery Object 
  6.  * @owner jQuery Object 
  7.  */  
  8. function nextAll([expr]);  
  9.   
  10. // 例子:給第一個div之後的所有元素加個類。  
  11. <div></div>  
  12. <div></div>  
  13. <div></div>  
  14. <div></div>  
  15.   
  16. $("div:first").nextAll().addClass("after") ->   
  17.     [ <div class="after"></div>, <div class="after"></div>, <div class="after"></div> ]  


    ●  parent([expr]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 取得一個包含着所有匹配元素的唯一父元素的元素集合。你可以使用可選的表達式來篩選。 
  3.  * 
  4.  * @expr(String) (可選) 用於篩選的表達式 
  5.  * @return jQuery Object 
  6.  * @owner jQuery Object 
  7.  */  
  8. function parent([expr]);  
  9.   
  10. // 例子一:查找每個段落的父元素。  
  11. <div>  
  12.   <p>Hello</p>  
  13.   <p>Hello</p>  
  14. </div>  
  15.   
  16. $("p").parent() -> [ <div><p>Hello</p><p>Hello</p></div>]  
  17.   
  18. // 例子二:查找段落的父元素中每個類名爲 selected 的父元素。  
  19. <div>  
  20.   <p>Hello</p>  
  21. </div>  
  22. <div class="selected">  
  23.   <p>Hello Again</p>  
  24. </div>  
  25.   
  26. $("p").parent(".selected") -> [ <div class="selected"><p>Hello Again</p></div> ]  


    ●  parents([expr]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 取得一個包含着所有匹配元素的祖先元素的元素集合。可以通過一個可選的表達式進行篩選。 
  3.  * 
  4.  * @expr(String) (可選) 用於篩選祖先元素的表達式 
  5.  * @return jQuery Object 
  6.  * @owner jQuery Object 
  7.  */  
  8. function parents([expr]);  
  9.   
  10. // 例子一:找到每個 span 元素的所有祖先元素。  
  11. <html>  
  12.   <body>  
  13.     <div>  
  14.       <p>  
  15.         <span>Hello</span>  
  16.       </p>  
  17.       <span>Hello Again</span>  
  18.     </div>  
  19.   </body>  
  20. </html>  
  21.   
  22. $("span").parents()  
  23.   
  24. // 例子二:找到每個 span 的所有是 p 元素的祖先元素。  
  25. <html>  
  26.   <body>  
  27.     <div>  
  28.       <p>  
  29.         <span>Hello</span>  
  30.       </p>  
  31.       <span>Hello Again</span>  
  32.     </div>  
  33.   </body>  
  34. </html>  
  35.   
  36. $("span").parents("p")  


    ●  prev([expr]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 取得一個包含匹配的元素集合中每一個元素緊鄰的前一個同輩元素的元素集合。 
  3.  * 可以用一個可選的表達式進行篩選。只有緊鄰的同輩元素會被匹配到,而不是前面所有的同輩元素。 
  4.  * 
  5.  * @expr(String) (可選) 用於篩選前一個同輩元素的表達式 
  6.  * @return jQuery Object 
  7.  * @owner jQuery Object 
  8.  */  
  9. function prev([expr]);  
  10.   
  11. // 例子一:找到每個段落緊鄰的前一個同輩元素。  
  12. <p>Hello</p>  
  13. <div>  
  14.   <span>Hello Again</span>  
  15. </div>  
  16. <p>And Again</p>  
  17.   
  18. $("p").prev() -> [ <div><span>Hello Again</span></div> ]  
  19.   
  20. // 例子二:找到每個段落緊鄰的前一個同輩元素中類名爲 selected 的元素,  
  21. <div>  
  22.   <span>Hello</span>、  
  23. </div>  
  24. <p class="selected">Hello Again</p>  
  25. <p>And Again</p>  
  26.   
  27. $("p").prev(".selected") -> [ <p class="selected">Hello Again</p> ]  


    ●  prevAll([expr]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 查找當前元素之前所有的同輩元素,可以用表達式漸進行過濾。 
  3.  * 
  4.  * @expr(String) (可選) 用於過濾的表達式 
  5.  * @return jQuery Object 
  6.  * @owner jQuery Object 
  7.  */  
  8. function prevAll([expr]);  
  9.   
  10. // 例子:給最後一個之前的所有 div 加上一個類。  
  11. <div></div>  
  12. <div></div>  
  13. <div></div>  
  14. <div></div>  
  15.   
  16. $("div:last").prevAll().addClass("before") ->   
  17.     [ <div class="before"></div>, <div class="before"></div>, <div class="before"></div> ]  


    ●  siblings([expr]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 取得一個包含匹配的元素集合中每一個元素的所有唯一同輩元素的元素集合。可以用可選的表達式進行篩選。 
  3.  * 
  4.  * @expr(String) (可選) 用於篩選同輩元素的表達式 
  5.  * @return jQuery Object 
  6.  * @owner jQuery Object 
  7.  */  
  8. function siblings([expr]);  
  9.   
  10. // 例子一:找到每個 div 的所有同輩元素。  
  11. <p>Hello</p>  
  12. <div>  
  13.   <span>Hello Again</span>  
  14. </div>  
  15. <p>And Again</p>  
  16.   
  17. $("div").siblings() -> [ <p>Hello</p>, <p>And Again</p> ]  
  18.   
  19. // 例子二:找到每個 div 的所有同輩元素中帶有類名爲 selected 的元素。  
  20. <div>  
  21.   <span>Hello</span>  
  22. </div>  
  23. <p class="selected">Hello Again</p>  
  24. <p>And Again</p>  
  25.   
  26. $("div").siblings(".selected") -> [ <p class="selected">Hello Again</p> ]  


    ●  andSelf() 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 加入先前所選的加入當前元素中。對於篩選或查找後的元素,要加入先前所選元素時將會很有用。 
  3.  * 
  4.  * @return jQuery Object 
  5.  * @owner jQuery Object 
  6.  */  
  7. function andSelf();  
  8.   
  9. // 例子:選取所有 div 以及內部的 p,並加上 border 類。  
  10. <div>  
  11.   <p>First Paragraph</p>  
  12.   <p>Second Paragraph</p>  
  13. </div>  
  14.   
  15. $("div").find("p").andSelf().addClass("border") ->   
  16. <div class="border"><p class="border">First Paragraph</p><p class="border">Second Paragraph</p></div>  


    ●  end() 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 回到最近的一個 "破壞性" 操作之前。即,將匹配的元素列表變爲前一次的狀態。 
  3.  * 如果之前沒有破壞性操作,則返回一個空集。所謂的 "破壞性" 就是指任何改變所匹配的 jQuery 元素的操作。 
  4.  * 這包括在 Traversing 中任何返回一個 jQuery 對象的函數: 
  5.  * 'add', 'andSelf', 'children', 'filter', 'find', 'map', 'next', 'nextAll', 'not',  
  6.  * 'parent', 'parents', 'prev', 'prevAll', 'siblings' and 'slice'。 
  7.  * 另外再加上 Manipulation 中的 'clone'。 
  8.  * 
  9.  * @return jQuery Object 
  10.  * @owner jQuery Object 
  11.  */  
  12. function end();  
  13.   
  14. // 選取所有的 p 元素,查找並選取 span 子元素,然後再回過來選取 p 元素。  
  15. <p>  
  16.   <span>Hello</span>,how are you?  
  17. </p>  
  18.   
  19. $("p").find("span").end() -> [ <p><span>Hello</span> how are you?</p> ]  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章