一、使用jQuery標志 1、禁用動畫 $.fx.off
——啟用或者禁用特效,是一個可讀寫的標志,其余的預定義標志是只讀的。 2、檢測用戶代理支持 瀏覽器檢測和特征檢測 jQuery瀏覽器功能標志 $.support
瀏覽器功能標志: boxModel/CSSFloat/hrefNormalized/htmlSerialize/leadingWhitespace/noCloneEvent/objectAll/opacity/scriptEval/style/tbody 3、瀏覽器檢測標志 在只能使用瀏覽器檢測的情況下,可以使用標志,在加載庫時被創建,并被定義為通過$.browser
引用的對象實例的屬性。 標志: msie:如果用戶代理被識別為任意版本的IE瀏覽器,則設置為true mozilla:如果用戶代理被識別為任意基于Mozilla的瀏覽器,則設置為true safari:如果用戶代理被識別為任意基于WebKit瀏覽器,則設置為true Opera:如果用戶代理被識別為opera瀏覽器,則設置為true version:設置為瀏覽器渲染引擎的版本號 二、jQuery與其他庫并存 $.noConflict()jqueryToo
——將標識符$
的控制權歸還給其他庫,允許在頁面上混合使用jQuery與其他庫。 創建一個作用域環境,在該環境中$標識符指向jQuery對象。用法為:
三、操作javascript對象和集合 1、修剪字符串 $.trim(value)
——刪除傳入的字符串開頭和結尾處的空白字符,并返回修改后的結果。這個函數中的空白字符定義為:匹配Javascript正則表達式/s的任意字符,不僅匹配空白字符,而且匹配換頁、換行、回車、制表,以及垂直制表符,還包括Unicode字符/u00A0。 2、遍歷屬性和集合 $.each(container,callback)
——遍歷傳入的容器中的每一項,并為每一項調用傳入的回調函數 回調函數的第一參數是數組元素的下標或對象屬性的名稱;第二個參數是數組項或者屬性值。將傳入的第二個參數的值設置為調用函數的山下文(this)。 例:
3、篩選數組 $.grep(array,callback,invert)
——遍歷傳入的數組,為每個元素調用回調函數。 callback——回調函數的返回值決定是否收集當前數據值。返回true,則收集。這個函數接收兩個參數,當前數據值和其在原始數組中的下標。
invert`——如果設置為true,回調函數返回false將導致數據被收集。如果省略或設置為false,回調函數返回true將導致數據被收集。 例:
4、轉換數組 $.map(array,callback)
——遍歷傳入的數組,為數組的每一項調用回調函數,并將函數調用的返回值收集到一個新的數組中。 例:
5、其他 $.inArray(value,array)
——返回傳入的值第一次出現時的下標 例:var index=$.inArray(2,[1,2,3,4,5]);
$.makeArray(object)
——將傳入的類似數組的對象轉換為Javascript數組。 類似數組:擁有長度和下標項概念的任何對象 比如Nodelist,var images=document.getElementByTagName(‘img’)
$.unique(array)
——向其傳入DOM元素的數組,則返回由原始數組中不重復的元素組成的數組 $.merge(array1,array2)
——將第二個數組中的值合并到第一個數組中并返回結果。這個操作會修改第一個數組并將其作為結果返回。 6、擴展對象 模擬繼承:通過將基礎對象的屬性復制到新對象來擴展對象,使得擴展的新對象擁有基礎對象的功能 $.extend(deep,target,source1,source2,…,sourceN)
——使用其余傳入的對象的屬性來擴展傳入的target對象 deep
——(布爾)可選,為true,執行深復制,省略或false,執行淺復制 target
——對象,在作為函數值返回之前,這個對象會直接被新屬性所修改。任何與源元素中的屬性具有相同名稱的屬性,都會被來自源元素的值所覆蓋。 7、序列化參數值 $.param(params,traditional)
——將傳入的信息序列化成可在提交請求中使用的查詢字符串。查詢字符串將會被正確地進行格式化,并且字符串中的每個名稱和值都會被正確地進行URI編碼。 params
——(數組|jQuery|對象)需要序列化為查詢字符串的值 如果傳入的是元素數組或jQuery包裝集,則其中包括的表單控件的名稱/值對會被添加到查詢字符串中。如果傳入的是一個javascript對象,則對象的屬性形成了參數的名稱和值。 traditional——如果設置為true,則強制此函數按照jQuery1.4之前的算法來執行;如果省略即為false 例:
則返回的是: a+thing=it%26s%3Dvalue&another+thing=another+value&weird+characters=!%40%23%24%25%5E%26*()_%2B%3D 序列化嵌套參數 嵌套對象:
{ name:{ first:’Yogi’, last:’Bear’},address:{ street:’123’, city:’Austin’}}這樣的結構可以表示為:name[first]=Yogi&name[last]=Bear&address[street]=123&……
8、測試對象 $.isArray(o)
——如果o是javascript數組,則返回true;否則為false $.isEmptyObject(o)
——如果o是不包含屬性的javascript對象,則返回true,這里指的屬性包括任何PRototype繼承下來的屬性 $.isFunction(o)
——如果o是javascript函數,則返回true。注:在IE瀏覽器中,內置的函數如alert()以及元素方法都不能被正確報告為函數 $.isPlainObject(o)
——如果o是一個通過{}或者new Object()創建的javascript對象,則返回true $.isxmlDoc(o)
——如果node是XML文檔,或者是文檔里的節點,則返回true 四、其他實用函數 1、什么都不做
在用戶沒有提供回調函數時作為其默認值用的 2、測試包含關系 $.contains(container,containee)
——測試一個元素是否在DOM層次結構中包含在另一個元素內部。如果containee包含在container內部就返回true,否則返回false。 3、附加數據到元素上 $.data(element,name,value)
——使用指定的名稱在傳入的元素上存儲或者檢索數據 element
——(元素)用于存儲數據的或者從中檢索數據的DOM元素 name
——(字符串)與數據相關聯的名稱 value
——(對象)將要被賦值給指定名稱的元素的數據。如果省略,則獲取指定名稱的數據 $.removeData(element,name)
——刪除存儲在傳入的元素上的數據 4、預綁定函數上下文
$.proxy(proxy,property)
——使用預綁定的代理對象創建函數的一個副本,在函數作為回調函數被調用時,此對象作為函數的上下文 function——將要使用代理對象來預綁定的函數 proxy——將要綁定為代理函數上下文的對象 property——傳入的proxy對象的屬性名稱,包含將要綁定的函數 例:
5、解析JSON $.parseJSON(json)
——解析傳入的JSON字符串,返回其計算值 6、表達式求值 $.globalEval(code)
——在全局上下文中對傳入的javascript代碼進行求值 7、動態加載腳本 $.getScript(url,callback)
——通過向指定的服務器發起GET請求來獲取由url參數指定的腳本,在請求成功后調用回調參數 例:stuff.js文件內容為:
主程序為:
$(function(){ $(‘#but1’).click(function(){ $.getScript( ‘stuff.js’ //,function(){$(‘#btn2’).click()});});$(‘#btn2’).click(function(){ someFunction(somevariable);});});新聞熱點
疑難解答