jQuery高級編程(3)jQuery核心技術

1、通過插件系統可以拓展jQuery

2、jQuery核心函數通常指一個工廠對象,即jQuery()函數,或者更爲常用的別名$()函數

3、工具函數

(1)對象

要檢查對象類型如果用js的typeof會出乎意料有時候typeof(null)是object而不是null

而jQuery中有

$.type(null);//返回null

$.type([]);//返回數組

isEmptyObject()用於檢查一個對象是否包含任何屬性,包括繼承的屬性,與對象類型無關

$.isEmptyObject("");//返回true

$.isEmptyObject({});//返回true

$,isPlainObject();用於檢查一個對象是否包含任何屬性,但他必須是一個Object的實例

$,isPlainObject(“”);//false

$,isPlainObject({});//true

$,isPlainObject(new Object);//true

$.extend()用來合併對象

var obj1={"1":"property 1"};

var obj2={"2","property 2"};

$.extend(obj1,obj2);

也可以用它來克隆對象

var clonedObject=$.extend({},anObject);

還可以接受一個布爾值作爲第一個參數,用於執行對象的深度合併,也就是遞歸複製

var clonedObject=$.extend(true,{},anObject);

(2)函數

$.isFunction(函數);//注意不是函數()

noop()是存根函數?

(3)數組操作

和isObject()和isFunction()類似,有isArray(),檢查一個對象是否是數組

makeArray()將一個類似於數組的對象轉換爲一個真正的數組。將類似於數組的對象轉換爲數組,將丟失該對象的所有方法和屬性。

合併數組

$.merge(數組名1,數組名2);

$.inArray()用於檢查數組中是否存在某個指定的值,如果找到該值則返回他在數組中的索引,如果找不到返回-1

$.unique()方法的功能是從DOM元素的數組中移除重複的元素

$.each()遍歷

$.map()接受兩個參數:第一個參數是一個數組對象或者類似於數組對象,第二個參數是一個回調函數

(4)數據結構

隊列:先進先出。

$.queue()來維護一個函數的列表,支持push和pop操作,如果要從隊列中移除所有函數,那麼可以使用.clearQueue()方法,.dequeue()則可以從隊列中移除一個函數並且執行它

(5)字符串

$.trim()用於移除首位空格

(6)數據

ajax最主要的數據交換格式:xml和json,可以使用.parseXML()和.parseJSON()方法來解析這兩種格式的數據,它可以解析本地數據,也可以解析URL指定的數據。

可以啊任意數據附加到HTML元素,可以存儲或者取回數據。這正是方法.data()的功能

(7)其他

.contains(容器節點,要檢查的目標節點),檢查一個DOM子節點是否是另一個節點的子節點

$.contains($("head")[0],$("title")[0]);//返回true

.isWindow(),在某個操作中可能要區分iframe和瀏覽器窗口,用這個方法

.isXMLDoc(),

.now(),獲取當前時間

.support()檢查瀏覽器特性

$.support.ajax

和globalEval()在全局上下文求值

$(function(){

$.globalEval("var x=0;");

})

4、非侵擾式JS

將行爲和內容分離,這種方式稱爲非侵擾式javascript

5、鏈式操作

6、爲了避免jQuery與其他js庫衝突,只需要使用$.noConflict();方法。將$恢復爲加載jQuery之前

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章