jQuery 學習十四(工具函數)

●  jQuery.boxModel 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 當前頁面中瀏覽器是否使用標準盒模型渲染頁面。 
  3.  *  
  4.  * @return Boolean 標準盒模型爲 true,否則爲 false 
  5.  * @owner jQuery Namaspace 
  6.  */  
  7.   
  8. // 例子:在 Internet Explorer 怪癖模式(QuirksMode)中返回 false  
  9. $.boxModel  


    ●  jQuery.browser 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 瀏覽器內核標識。依據 navigator.userAgent 判斷。 
  3.  * 可用值:safari, opera, msie, mozilla 
  4.  * 
  5.  * 此屬性在 DOM 樹加載完成前即有效,可用於爲特定瀏覽器設置 ready 事件。 
  6.  * 瀏覽器對象檢測技術與此屬性共同使用可提供可靠的瀏覽器檢測支持。 
  7.  *  
  8.  * @return Map 
  9.  * @owner jQuery Namaspace 
  10.  */  
  11.   
  12. // 例子一:在 Microsoft's Internet Explorer 瀏覽器中返回 true。  
  13. $.browser.msie  
  14.   
  15. // 例子二:僅在 Safari 中提示 "this is safari!" 。  
  16. if ($.browser.safari) {  
  17.    alert("this is safari!");  
  18. }  


    ●  jQuery.browser.version 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 瀏覽器渲染引擎版本號。 
  3.  *  
  4.  * 典型結果:  
  5.  * Internet Explorer: 6.0, 7.0 
  6.  * Mozilla/Firefox/Flock/Camino: 1.7.12, 1.8.1.3 
  7.  * Opera: 9.20 
  8.  * Safari/Webkit: 312.8, 418.9 
  9.  *  
  10.  * @return String 
  11.  * @owner jQuery Namaspace 
  12.  */  
  13.   
  14. // 例子:顯示當前 IE 瀏覽器版本號。  
  15. if ( $.browser.msie ) {  
  16.   alert( $.browser.version );   
  17. }  


    ●  jQuery.each(obj, callback) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 通用遍歷方法,可用於遍歷對象和數組。不同於遍歷 jQuery 對象的 $().each() 方法,此方法可用於遍歷 
  3.  * 任何對象。 
  4.  * 
  5.  * 回調函數擁有兩個參數:第一個爲對象的成員或數組的索引,第二個爲對應變量或內容。 
  6.  * 如果需要退出 each 循環可使回調函數返回 false,其它返回值將被忽略。 
  7.  *  
  8.  * @obj(Object) 需要遍歷的對象或數組 
  9.  * @callback(Function) (可選) 每個成員/元素執行的回調函數  
  10.  * @return Object 
  11.  * @owner jQuery Namaspace 
  12.  */  
  13. jQuery.each(obj, callback);  
  14.   
  15. // 例子一:遍歷數組,同時使用元素索引和內容。  
  16. $.each( [0,1,2], function(i, n) {  
  17.   alert( "Item #" + i + ": " + n );  
  18. });  
  19.   
  20. // 例子二:遍歷對象,同時使用成員名稱和變量內容  
  21. $.each( { name: "John", lang: "JS" }, function(i, n) {  
  22.   alert( "Name: " + i + ", Value: " + n );  
  23. });  


    ●  jQuery.extend(target, obj1, [objN]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 用一個或多個其他對象來擴展一個對象,返回被擴展的對象。用於簡化繼承。此方法也可以用來 
  3.  * 擴展 jQuery 的系統函數。 
  4.  *  
  5.  * @target(Object) 待修改對象 
  6.  * @obj1(Object) 待合併到第一個對象的對象 
  7.  * @objN(Object) (可選) 待合併到第一個對象的對象 
  8.  * @return Object 
  9.  * @owner jQuery Namaspace 
  10.  */  
  11. jQuery.extend(target, obj1, [objN]);  
  12.   
  13. // 例子一:合併 settings 和 options,修改並返回 settings。  
  14. var settings = { validate: false, limit: 5, name: "foo" };  
  15. var options = { validate: true, name: "bar" };  
  16. jQuery.extend(settings, options);  
  17.   
  18. result: settings == { validate: true, limit: 5, name: "bar" }  
  19.   
  20. // 例子二:合併 defaults 和 options, 不修改 defaults。  
  21. var empty = {}  
  22. var defaults = { validate: false, limit: 5, name: "foo" };  
  23. var options = { validate: true, name: "bar" };  
  24. var settings = jQuery.extend(empty, defaults, options);  
  25.   
  26. result: settings == { validate: true, limit: 5, name: "bar" }  
  27.         empty    == { validate: true, limit: 5, name: "bar" }  
  28.           
  29. // 例子三:擴展 jQuery 的系統函數,添加一名爲 "hello" 的系統函數。  
  30. $.extend({  
  31.     hello: function(str) {  
  32.         return str + " hello"  
  33.     }  
  34. });  
  35.   
  36. 使用:$.hello("china") -> china hello  


    ●  jQuery.grep(array, callback, [invert]) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 使用過濾函數過濾數組元素。 
  3.  * 
  4.  * 此函數至少傳遞兩個參數:待過濾數組和過濾函數。過濾函數必須返回 true 以保留元素或 false 以刪除元素 
  5.  *  
  6.  * @array(Array) 待過濾數組 
  7.  * @callback(Function) 此函數將處理數組每個元素。第一個參數爲當前元素,第二個參數爲元素索引值。此函數 
  8.  *                     應返回一個布爾值。另外,此函數可設置爲一個字符串,當設置爲字符串時,將視爲 
  9.  *                     "lambda-form"(縮寫形式 ?),其中 a 代表數組元素,i 代表元素索引值。 
  10.  *                     如 "a > 0" 代表 "function(a) { return a > 0; }"。 
  11.  * @invert(Boolean) (可選) 如果 "invert" 爲 false 或未設置,則函數返回數組中由過濾函數返回 
  12.  *                  true 的 元素,當 "invert" 爲 true,則返回過濾函數中返回 false 的元素集。 
  13.  * @return Array 
  14.  * @owner jQuery Namaspace 
  15.  */  
  16. jQuery.grep(array, callback, [invert]);  
  17.   
  18. // 例子一:過濾數組中小於 0 的元素。  
  19. $.grep( [0, 1, 2], function(n, i) {  
  20.   return n > 0;  
  21. }); -> [1, 2]  
  22.   
  23. // 例子二:排除數組中大於 0 的元素,使用第三個參數進行反向選擇。  
  24. $.grep( [0, 1, 2], function(n, i) {  
  25.   return n > 0;  
  26. }, true); -> [0]  


    ●  jQuery.inArray(value, array) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 確定第一個參數在數組中的位置(如果沒有找到則返回 -1)。 
  3.  *  
  4.  * @value(Any) 用於在數組中查找是否存在的對象 
  5.  * @array(Array) 待處理數組 
  6.  * @return Integer 
  7.  * @owner jQuery Namaspace 
  8.  */  
  9. jQuery.inArray(value, array);  
  10.   
  11. // 例子:刪除重複 div 標籤。  
  12. var arr = [ 4, "Pete", 8, "John" ];  
  13. jQuery.inArray("John", arr);  // 3  
  14. jQuery.inArray(4, arr);  // 0  
  15. jQuery.inArray("David", arr);  // -1  


    ●  jQuery.makeArray(obj) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 將類數組對象轉換爲數組對象。 
  3.  * 
  4.  * 類數組對象有 length 屬性,其成員索引爲 0 至 length - 1。實際中此函數在 jQuery 中將自動使用 
  5.  * 而無需特意轉換。 
  6.  *  
  7.  * @obj(Object) 類數組對象 
  8.  * @return Array 
  9.  * @owner jQuery Namaspace 
  10.  */  
  11. jQuery.makeArray(obj);  
  12.   
  13. // 例子:  
  14. <div>First</div>  
  15. <div>Second</div>  
  16. <div>Third</div>  
  17. <div>Fourth</div>   
  18.   
  19. var arr = jQuery.makeArray(document.getElementsByTagName("div"));  
  20. arr.reverse(); // 使用數組翻轉函數  
  21.   
  22. Fourth  
  23. Third  
  24. Second  
  25. First  


    ●  jQuery.map(array, callback) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 將一個數組中的元素轉換到另一個數組中。 
  3.  * 
  4.  * 作爲參數的轉換函數會爲每個數組元素調用,而且會給這個轉換函數傳遞一個表示被轉換的元素作爲參數。 
  5.  * 轉換函數可以返回轉換後的值、null(刪除數組中的項目)或一個包含值的數組,並擴展至原始數組中。 
  6.  * 
  7.  * @array(Array) 待轉換數組 
  8.  * @callback(Function) 爲每個數組元素調用,而且會給這個轉換函數傳遞一個表示被轉換的元素作爲參數。 
  9.  *                     函數可返回任何值。另外,此函數可設置爲一個字符串,當設置爲字符串時,將視 
  10.  *                     爲 "lambda-form"(縮寫形式 ?),其中 a 代表數組元素。如 "a * a" 代表 
  11.  *                     function(a) { return a * a; }"。 
  12.  * @return Array 
  13.  * @owner jQuery Namaspace 
  14.  */  
  15. jQuery.map(array, callback);  
  16.   
  17. // 例子一:將原數組中每個元素加 4 轉換爲一個新數組。  
  18. $.map( [0, 1, 2], function(n) {  
  19.   return n + 4;  
  20. }); -> [4, 5, 6]  
  21.   
  22. // 例子二:原數組中大於 0 的元素加 1,否則刪除。  
  23. $.map( [0, 1, 2], function(n) {  
  24.   return n > 0 ? n + 1 : null;  
  25. }); -> [2, 3]  
  26.   
  27. // 例子三:原數組中每個元素擴展爲一個包含其本身和其值加 1 的數組,並轉換爲一個新數組。   
  28. $.map( [0, 1, 2], function(n) {  
  29.   return [ n, n + 1 ];  
  30. }); -> [0, 1, 1, 2, 2, 3]  


    ●  jQuery.unique(array) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 刪除數組中重複元素。 
  3.  * 
  4.  * @array(Array) 待轉換數組 
  5.  * @return jQuery Object 
  6.  * @owner jQuery Namaspace 
  7.  */  
  8. jQuery.unique(array);  
  9.   
  10. // 例子:刪除重複 div 標籤。  
  11. $.unique(document.getElementsByTagName("div")) -> [<div>, <div>, ...]  


    ●  jQuery.isFunction(obj) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 測試對象是否爲函數。 
  3.  * 
  4.  * @obj(Object) 用於測試是否爲函數的對象 
  5.  * @return Boolean 
  6.  * @owner jQuery Namaspace 
  7.  */  
  8. jQuery.isFunction(obj);  
  9.   
  10. // 例子:檢測是否爲函數。  
  11. function stub() {}  
  12. var objs = [  
  13.   function() {},  
  14.   { x:15, y:20 },  
  15.   null,  
  16.   stub,  
  17.   "function"  
  18. ];  
  19.   
  20. jQuery.each(objs, function(i) {  
  21.   var isFunc = jQuery.isFunction(objs[i]);  
  22.   $("span:eq( " + i + ")").text(isFunc);  
  23. }); -> [ truefalsefalsetruefalse ]  


    ●  jQuery.trim(str) 
Javascript代碼  收藏代碼
  1. /** 
  2.  * 去掉字符串起始和結尾的空格。 
  3.  * 
  4.  * @str(String) 需要處理的字符串 
  5.  * @return Boolean 
  6.  * @owner jQuery Namaspace 
  7.  */  
  8. jQuery.trim(str);  
  9.   
  10. // 例子:去掉字符串起始和結尾的空格。  
  11. $.trim(" hello, how are you? ") -> "hello, how are you?"  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章