jQuery之工具函數(shù)

檢測瀏覽器類型

由于jQuery1.9版本取消了對$.browser的支持,采用$.support來判斷瀏覽器類型

navigator.userAgent

對象和集合操作

1.處理字符串

$.trim(str)清理字符串前后的空白

var str=" hello world! "
str = $.trim(str)
console.log(str)   //result:hello world!
console.log(str.length)   //result:12

2.把對象轉(zhuǎn)換為字符串

$.param將字符串創(chuàng)建為一個序列化的數(shù)組或?qū)ο蠡纬铡T摲椒ㄌ貏e適用于一個URL地址查詢字符串或ajax請求。

            var option={
                user:"demo",
                passwd:"12345678"
            }
            optionStr=$.param(option)
            console.log(optionStr)  //result:user=demo&passwd=12345678
            console.log(optionStr.length)   //result:25

3.判斷數(shù)組類型

var array = new Array()
console.log($.isArray(array))
//result: true

4.判斷函數(shù)類型

            //is function
            function isFun(){

            }
            console.log($.isFunction(isFun))
            //result:true

5.判斷特殊對象

5.1檢測空對象
var array = new Array()
console.log($.isEmptyObject(array))
//result:true
5.2檢測純對象
var plainObject = new Object()
console.log($.isPlainObject(plainObject))
//result:true
5.3檢測window對象

$.isWindow(obj)檢測一個對象是否為Window對象

5.4檢測XML文檔

$.isXMLDoc(node)檢測一個DOM節(jié)點是否在XML文檔中

6.對數(shù)組和集合進(jìn)行迭代

$.each(collection,callback(indexArray,valueOfElement))

            arrayEach = new Array("h","e","l","l","l")
            $.each(arrayEach,function(name,value){
                alert(name+"="+value)
            })

7.生成數(shù)組

$.makeArray(obj)將類數(shù)組結(jié)構(gòu)裝換為真正的數(shù)組結(jié)構(gòu)

如惩歉,通過$("li")orgetEmementByTagName("li")獲得的是一個類數(shù)組結(jié)構(gòu)吱肌,但是通過makeArray函數(shù)轉(zhuǎn)換后就是數(shù)組對象

objLi = $("li")
            console.log($.isArray(objLi))
            arrLi = $.makeArray(objLi)
            console.log($.isArray(arrLi))

8.對數(shù)組進(jìn)行篩選

$.grep(array,function(elementOfArray,IndexInArray),[invert])

  • function用來處理每個項目的對比,與each不同黍翎,第一個參數(shù)是元素盏浙,第二個參數(shù)時索引
  • invert為true佩研,對callback返回true铜犬,如果為false舞终,對callback返回false
            var array = new Array("1","2","3","4","5","6","7","8")
            arrayGt=$.grep(array,function(value,index){
                return value>=5
            })
            console.log(arrayGt)  //result:5,6,7,8
            arrayLt=$.grep(array,function(value,index){
                return value>=5
            },true)
            console.log(arrayLt)  //result:1,2,3,4

9.對數(shù)組進(jìn)行轉(zhuǎn)換

$.map(array,[callback(element,vale)])

            var array = new Array("1","2","3","4","5","6","7","8")
            console.log($.map(array,function(value){
                return value*2
            }))
            //result:2, 4, 6, 8, 10, 12, 14, 16

10.把多個數(shù)組結(jié)合在一起

$.merge(first,second)

11.刪除數(shù)組中重復(fù)元素

$.unique(array)

var array = new Array("1","2","3","4","5","6","7","8","8")
console.log($.unique(array))
//result: 2, 4, 6, 8, 10, 12, 14, 16

12.在數(shù)組中查找指定值

$.inArray(value,array)

var array = new Array("1","2","3","4","5","6","7","8")
alert($.inArray("8",array))
//result:7

緩存

數(shù)據(jù)緩存的作用就是在一個元素上存取元素而避免循環(huán)引用的風(fēng)險,jQuery通過data函數(shù)實現(xiàn)數(shù)據(jù)緩存的機制

$.data(element,key,value)

  • element表示要關(guān)聯(lián)數(shù)據(jù)的DOM對象
  • key表示存儲的數(shù)據(jù)名
  • value表示新數(shù)據(jù)值
            var liObj = $("li")
            $.each(liObj,function(name,index){
                liObj.eq(name).data("indexLi",name) //給每一個li創(chuàng)建數(shù)據(jù)名indexLi,并用索                                                    //引給其賦值
            })
            $.each(liObj,function(name,index){
                console.log(liObj.eq(name).data("indexLi"))   //讀取indexLi的內(nèi)容
            })
            //result: 0,1,2,3

$.removeData(element,[name])

            var liObj = $("li")
            $.each(liObj,function(name,index){

                liObj.eq(name).data("indexLi",name)
            })
            $("li").removeData("indexLi")  //刪除名稱為indexLi的緩存
            $.each(liObj,function(name,index){
                console.log(liObj.eq(name).data("indexLi"))
            })
            //result:undefined
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末癣猾,一起剝皮案震驚了整個濱河市敛劝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纷宇,老刑警劉巖夸盟,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異像捶,居然都是意外死亡上陕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門拓春,熙熙樓的掌柜王于貴愁眉苦臉地迎上來释簿,“玉大人,你說我怎么就攤上這事痘儡≡颍” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵沉删,是天一觀的道長。 經(jīng)常有香客問我醉途,道長矾瑰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任隘擎,我火速辦了婚禮殴穴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己采幌,他們只是感情好劲够,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著休傍,像睡著了一般征绎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磨取,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天人柿,我揣著相機與錄音,去河邊找鬼忙厌。 笑死凫岖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逢净。 我是一名探鬼主播哥放,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼爹土!你這毒婦竟也來了婶芭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤着饥,失蹤者是張志新(化名)和其女友劉穎犀农,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宰掉,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡呵哨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了轨奄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片孟害。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挪拟,靈堂內(nèi)的尸體忽然破棺而出挨务,到底是詐尸還是另有隱情,我是刑警寧澤玉组,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布谎柄,位于F島的核電站,受9級特大地震影響惯雳,放射性物質(zhì)發(fā)生泄漏朝巫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一石景、第九天 我趴在偏房一處隱蔽的房頂上張望劈猿。 院中可真熱鬧拙吉,春花似錦、人聲如沸揪荣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仗颈。三九已至佛舱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揽乱,已是汗流浹背名眉。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凰棉,地道東北人损拢。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像撒犀,于是被迫代替她去往敵國和親福压。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容

  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒或舞。 unpack() 函數(shù)從二進(jìn)制字符串對數(shù)據(jù)進(jìn)行解...
    上街買菜丶迷倒老太閱讀 1,366評論 0 20
  • php usleep() 函數(shù)延遲代碼執(zhí)行若干微秒荆姆。 unpack() 函數(shù)從二進(jìn)制字符串對數(shù)據(jù)進(jìn)行解包。 uni...
    思夢PHP閱讀 1,984評論 1 24
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式映凳。設(shè)計者無需花費時間糾纏JS復(fù)雜的高級特性胆筒。 1....
    LaBaby_閱讀 1,335評論 0 2
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計者無需花費時間糾纏JS復(fù)雜的高級特性诈豌。 1....
    LaBaby_閱讀 1,171評論 0 1
  • Android 3.0之后矫渔,Google引入了ActionBar彤蔽,想統(tǒng)一安卓應(yīng)用的導(dǎo)航欄樣式。但由于ActionB...
    亦楓閱讀 2,181評論 1 29