国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery 工具函數學習資料

2019-11-21 00:32:16
字體:
來源:轉載
供稿:網友

1:URL操作:

$.param(obj)

返回 :string;

說明:將jquery對象按照name/value 或者key/value序列化為URL參數,用&連接。

示例:

var obj ={name:zh,age:20};
alert(jQuery.param(obj));
//alert "name=zh&age=20";
 

2:字符串操作:

jQuery.trim(str)

返回:string;

說明:去掉字符串首尾空格。

示例:

alert($.trim(" 123 "));
//alert "123";

3:數組和對象操作:

(1) :

&.each(obj,callback)

說明:

通用例遍方法,可用于例遍對象和數組。

不同于例遍 jQuery 對象的 $().each() 方法,此方法可用于例遍任何對象。

回調函數擁有兩個參數:第一個為對象的成員或數組的索引,第二個為對應變量或內容。

如果需要退出 each 循環可使回調函數返回 false,其它返回值將被忽略。

示例:

var a =[0,1,2,3,4,5];
$.each(a,function(i,n){document.write(""+i+" and " +n +"<br/>");});

//result:

/*0 and 0
1 and 1
2 and 2
3 and 3
4 and 4
5 and 5I*/

 

(2):

$.extend(obj,default,option)

說明:

在開發插件的時候最常用此函數函數來處理options.

下面是fancybox插件獲取options的代碼:

settings = $.extend({}, $.fn.fancybox.defaults, settings);

上面的代碼target是一個空對象, 將默認設置defaults作為第一個對象,  將用戶傳入的設置setting合并到default上,  setting上有的屬性以setting為準. setting沒有傳入的屬性則使用default的默認值. 然后將合并的結果復制給target并作為函數返回值返回.

看一個完整的示例:

var empty = {} var defaults = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; var settings = jQuery.extend(empty, defaults, options);
/*result:
settings == { validate: true, limit: 5, name: "bar" } empty == { validate: true, limit: 5, name: "bar" }*/

//target參數要傳遞一個空對象是因為target的值最后將被改變.比如:

var defaults = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; var settings = jQuery.extend(defaults, options);

上面的代碼將defaults作為target參數,  雖然最后settings的結果一樣, 但是defaults的值被改變了! 而插件中的默認值應該都是固定! 所以使用時請注意target參數的用法.


(3):篩選

jQuery.grep( array, callback, [invert] )

返回值: Array

說明:

使用過濾函數過濾數組元素。

此函數至少傳遞兩個參數:待過濾數組和過濾函數。過濾函數必須返回 true 以保留元素或 false 以刪除元素。

講解:

默認invert為false, 即過濾函數返回true為保留元素. 如果設置invert為true, 則過濾函數返回true為刪除元素.

下面的示例演示如何過濾數組中索引小于 0 的元素:

$.grep( [0,1,2], function(n,i){ return n > 0; });

//results:[1,2]

 

(4).轉換

jQuery.map( array, callback )

返回值:Array

說明:

將一個數組中的元素轉換到另一個數組中。

作為參數的轉換函數會為每個數組元素調用,而且會給這個轉換函數傳遞一個表示被轉換的元素作為參數。

轉換函數可以返回轉換后的值、null(刪除數組中的項目)或一個包含值的數組,并擴展至原始數組中。

示例:

var arr = [ "a", "b", "c", "d", "e" ] ;

$("div").text(arr.join(", "));

arr = jQuery.map(arr, function(n, i){ return (n.toUpperCase() + i); });

$("p").text(arr.join(", "));

arr = jQuery.map(arr, function (a) { return a + a; });

alert(arr.join(", "));

//alert  A0A0, B1B1, C2C2, D3D3, E4E4

(5)

jQuery.makeArray( obj ) , jQuery.inArray( value, array ) ,jQuery.merge( first, second ) ,

jQuery.unique( array ) 就不再一一介紹了,

還有JavaScript的join()和split()方法也很重要。

4:測試操作:

(1):

$.isFunction(fn)

返回:Boolean;

說明:測試是否為函數;

示例:

var fn =function(){};

alert($.isFunction(fn));

//alert true;

(2):

$.isArray(obj);

返回:Boolean;

說明:測試是否為數組:

示例:略;

(3):

JavaScript只帶的 isNan()和isFinite():非數字和無窮大;

 

5:瀏覽器對象:

 

jQuery的優秀就在于其跨瀏覽器的特性, 通常我們不用再針對不同瀏覽器書寫不同的代碼.  但是如果是jQuery開發人員或者插件開發人員就要自行處理瀏覽器差異, 以便為用戶提供跨瀏覽器的特性.

jQuery提供了下列屬性用于獲取瀏覽器特性:

jQuery.support

1.3后版本新增
jQuery.browser已廢除

jQuery.browser.version

已廢除
jQuery.boxModel已廢除

$.support:

jQuery 1.3 新增。一組用于展示不同瀏覽器各自特性和bug的屬性集合。

jQuery提供了一系列屬性,你也可以自由增加你自己的屬性。其中許多屬性是很低級的,所以很難說他們能否在日新月異的發展中一直保持有效,但這這些主要用于插件和內核開發者。

所有這些支持的屬性值都通過特性檢測來實現,而不是用任何瀏覽器檢測。以下有一些非常棒的資源用于解釋這些特性檢測是如何工作的:

  • http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting
  • http://yura.thinkweb2.com/cft/
  • http://www.jibbering.com/faq/faq_notes/not_browser_detect.html

jQuery.support主要包括以下測試:

boxModel: 如果這個頁面和瀏覽器是以W3C CSS盒式模型來渲染的,則等于true。通常在IE 6和IE 7的怪癖模式中這個值是false。在document準備就緒前,這個值是null。

cssFloat: 如果用cssFloat來訪問CSS的float的值,則返回true。目前在IE中會返回false,他用styleFloat代替。

hrefNormalized: 如果瀏覽器從getAttribute("href")返回的是原封不動的結果,則返回true。在IE中會返回false,因為他的URLs已經常規化了。

htmlSerialize: 如果瀏覽器通過innerHTML插入鏈接元素的時候會序列化這些鏈接,則返回true,目前IE中返回false。

leadingWhitespace: 如果在使用innerHTML的時候瀏覽器會保持前導空白字符,則返回true,目前在IE 6-8中返回false。

noCloneEvent: 如果瀏覽器在克隆元素的時候不會連同事件處理函數一起復制,則返回true,目前在IE中返回false。

objectAll: 如果在某個元素對象上執行getElementsByTagName("*")會返回所有子孫元素,則為true,目前在IE 7中為false。

opacity: 如果瀏覽器能適當解釋透明度樣式屬性,則返回true,目前在IE中返回false,因為他用alpha濾鏡代替。

scriptEval: 使用 appendChild/createTextNode 方法插入腳本代碼時,瀏覽器是否執行腳步,目前在IE中返回false,IE使用 .text 方法插入腳本代碼以執行。

style: 如果getAttribute("style")返回元素的行內樣式,則為true。目前IE中為false,因為他用cssText代替。

tbody: 如果瀏覽器允許table元素不包含tbody元素,則返回true。目前在IE中會返回false,他會自動插入缺失的tbody。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹰潭市| 木兰县| 永济市| 曲阜市| 九龙城区| 都江堰市| 巴彦淖尔市| 连城县| 东方市| 合山市| 原阳县| 阜宁县| 镇雄县| 开阳县| 诸暨市| 常德市| 汽车| 济南市| 禄丰县| 湘西| 青神县| 丹阳市| 卢湾区| 甘洛县| 昌平区| 城市| 大丰市| 桐乡市| 宁化县| 桐城市| 屏东县| 黎平县| 会昌县| 江都市| 云阳县| 泾阳县| 中方县| 丹寨县| 武陟县| 武宁县| 林西县|