JQuery學(xué)習(xí)筆記整理:工具類

2018-06-19 15:55 更新
      jQuery還提供了很多輔助工具方法,使用這些方法可以很方便的進(jìn)行操作js代碼邏輯。

使用方法會在后面一一給出例子:

each()  用于遍歷指定的對象和數(shù)組,并以對象的每個屬性(或數(shù)組的每個成員)作為上下文來遍歷執(zhí)行指定的函數(shù)。

map()  用于使用指定函數(shù)處理數(shù)組中的每個元素(或?qū)ο蟮拿總€屬性),并將處理結(jié)果封裝為新的數(shù)組返回。

boxModel  檢測當(dāng)前頁面中瀏覽器是否使用標(biāo)準(zhǔn)盒模型渲染頁面(從1.8版本開始,此屬性已經(jīng)移除)

browser  用來獲取useragent的包含標(biāo)志,讀取自 navigator.userAgent。(從1.9版本開始,此屬性已經(jīng)移除)

support  它們代表了不同的瀏覽器功能或錯誤存在的屬性集合。當(dāng)他們不再需要在內(nèi)部以提高頁面的啟動性能時,這些特定屬性可能會被刪除。

contains()  檢查一個DOM元素是另一個DOM元素的后代。

extend()  將兩個或更多對象的內(nèi)容合并到第一個對象。

$.fn.extend()  一個對象的內(nèi)容合并到j(luò)Query的原型,以提供新的jQuery實例方法。

globalEval()  在全局上下文下執(zhí)行一些JavaScript代碼。

grep()  查找滿足過濾函數(shù)的數(shù)組元素。原始數(shù)組不受影響。

inArray()  在數(shù)組中查找指定值并返回它的索引(如果沒有找到,則返回-1)。

isArray()  檢測變量是一個數(shù)組。

isEmptyObject()  檢測對象是否為空(不包含任何屬性)。

isPlainObject()  測試對象是否是純粹的對象(通過 "{}" 或者 "new Object" 創(chuàng)建的)

isFunction()  檢測變量是否為一個Javascript 函數(shù)。

isNumeric()  檢測變量是否是一個數(shù)字。

isWindow()  檢測變量是否為一個window對象。

makeArray()  轉(zhuǎn)換一個類似數(shù)組的對象成為真正的JavaScript數(shù)組。

noop()  一個空函數(shù)

now()  返回一個數(shù)字,表示當(dāng)前時間。

parseHTML()  將字符串解析到一個DOM節(jié)點的數(shù)組中。

parseJSON()  接受一個標(biāo)準(zhǔn)格式的 JSON 字符串,并返回解析后的 JavaScript 對象。

parseXML()  解析一個字符串到一個XML文檔。

trim()  去掉字符串起始和結(jié)尾的空格。

type()  確定JavaScript內(nèi)置對象的類型,并返回小寫形式的類型名稱。

unique()  刪除數(shù)組中重復(fù)元素。只處理刪除DOM元素數(shù)組,而不能處理字符串或者數(shù)字?jǐn)?shù)組。


(1)each()
each()用于遍歷指定的對象和數(shù)組,并以對象的每個屬性(或數(shù)組的每個成員)作為上下文來遍歷執(zhí)行指定的函數(shù)。

$.each( object, callback)

$.each()函數(shù)將根據(jù)每個成員(對象的屬性或數(shù)組的元素)循環(huán)調(diào)用函數(shù)callback。每次調(diào)用函數(shù)callback時,$.each()函數(shù)都會將callback函數(shù)內(nèi)部的this引用指向當(dāng)前正在迭代的成員,并為其傳入兩個參數(shù),第一個參數(shù)是當(dāng)前迭代成員在對象或數(shù)組中的索引值(從0開始計數(shù)),第二個參數(shù)是當(dāng)前迭代成員(與this的引用相同)。

var arr = {name:'tg',age:1};   

$.each(arr,function(index,value){   

  console.log(this == value);   

  console.log(index + ':' +value);   

});


// true 

// name:tg  

// true 

// age:1


(2) map()
map()方法和each()方法的用法一樣,只不過它會根據(jù)處理結(jié)果來封裝為新的數(shù)組返回。

$.map( object, callback);

$.map()函數(shù)將根據(jù)每個成員(對象的屬性或數(shù)組的元素)循環(huán)調(diào)用函數(shù)callback。每次調(diào)用函數(shù)callback時,$.map()函數(shù)都會將callback函數(shù)內(nèi)部的this引用指向當(dāng)前正在迭代的成員,并為其傳入兩個參數(shù),第一個參數(shù)是當(dāng)前迭代成員(與this的引用相同),第二個參數(shù)是當(dāng)前迭代成員在對象或數(shù)組中的索引值(從0開始計數(shù))

注意:map()和each()回調(diào)函數(shù)傳入?yún)?shù)雖然都是一個是當(dāng)前迭代成員,一個是索引,但兩者的位置含義不一樣。


每次執(zhí)行callback函數(shù)的返回值將作為結(jié)果數(shù)組中的一個元素,如果函數(shù)的返回值為null或undefined,則不會被添加到結(jié)果數(shù)組中。


var arrs = [1,'tg',3];   

var numberArray = $.map(arrs,function(value,index){   

  if(typeof value === 'number'){   

    return value;   

  };   

});   

console.log(numberArray);

// [1,3]


(3)support

它們代表了不同的瀏覽器功能或錯誤存在的屬性集合。當(dāng)他們不再需要在內(nèi)部以提高頁面的啟動性能時,這些特定屬性可能會被刪除。

$.support

support的全部屬性:http://www.jquery123.com/jQuery.support/


(4)contains()

contains()方法檢查一個DOM元素是另一個DOM元素的后代。

$.contains( element, element )

兩個參數(shù)都是Element類型(第一個是祖先元素,第二個是后代元素),返回布爾值。

<div class="box"><div class="child"></div></div>

<div class="item"></div>


var parent = document.querySelector('.box');   

var child = document.querySelector('.child');   

var item = document.querySelector('.item');   

console.log($.contains(parent,child));   // true

console.log($.contains(parent,item));  // false


(5)extend()

extend()將兩個或更多對象的內(nèi)容合并到第一個對象。

$.extend( [ deep ], target , object1 [, objectN... ] )

參數(shù)說明:

 deep : 可選/Boolean類型指示是否深度合并對象,默認(rèn)為false。如果該值為true,且多個對象的某個同名屬性也都是對象,則該"屬性對象"的屬性也將進(jìn)行合并。  

 target : Object類型目標(biāo)對象,其他對象的成員屬性將被復(fù)制到該對象上。  

 object1 : 可選/Object類型第一個被合并的對象。  

 objectN : 可選/Object類型第N個被合并的對象。


var arr1 = {name:'tg'};   

var arr2 = {name:'ab',age:1};   

var arr3 = $.extend(arr1,arr2);   

console.log(arr3);


// {name: "ab", age: 1}

如果有同名屬性,則以最后一個為主。


(6)$.fn.extend()

$.fn.extend()是jQuery擴(kuò)展方法,可以將一個對象的內(nèi)容合并到j(luò)Query的原型,以提供新的jQuery實例方法。

$.fn.extend( object )

$.fn.property = value;

$.fn.functionName = function(){}

例子:

$.fn.author = 'tg';   

$.fn.isCurrentAuthor = function(name){   

  if(name === 'tg'){   

    return true;   

  };   

  return false;   

};   

var obj = {   

  age: 1   

};   

$.fn.extend(obj);   


console.log($('body').author);   // "tg"

console.log($('body').age);    // 1

console.log($('.body').isCurrentAuthor('tg'));  // true


(7)globalEval()

globalEval() 在全局上下文下執(zhí)行一些JavaScript代碼。

$.globalEval( code );

例子:

var name = 'tg';   

function test(){   

  var name = 'tg2'        

  eval('console.log(name);');        

  $.globalEval('console.log(name);');   

};   

test();


// tg2

// tg


(8)grep()

grep() 查找滿足過濾函數(shù)的數(shù)組元素。原始數(shù)組不受影響。

$.grep( array, function [, invert ] );

參數(shù):

 array :將被過濾的數(shù)組。  

 function : 指定的過濾函數(shù), 它提供兩個參數(shù):第一個為當(dāng)前迭代的數(shù)組元素,第二個是當(dāng)前迭代元素在數(shù)組中的索引。

 invert : 可選的Boolean類型,默認(rèn)值為false。指定是否反轉(zhuǎn)過濾結(jié)果。


var arr = [1,-1,2,-3];   

var grep = $.grep(arr,function(value,index){   

  return value > 0;   

});   


console.log(grep);  // [1, 2]


(9)inArray()

inArray()用來在數(shù)組中查找指定值并返回它的索引(如果沒有找到,則返回-1)。

$.inArray( value, array [, fromIndex ] );

參數(shù):

 value :用于查找的值

 array : 指定被查找的數(shù)組

 fromIndex : 可選,指定從數(shù)組的指定索引位置開始查找


注意:如果有多個相同的值,只會查找到第一個值的索引??膳袛嗍欠竦扔?1來確定是否存在指定值。

var arr = [1,-1,2,-3,1];   


console.log($.inArray(1,arr));  // 0


(10)判斷數(shù)據(jù)類型方法

isArray() 檢測變量是一個數(shù)組。  

isEmptyObject() 檢測對象是否為空(不包含任何屬性)。  

isPlainObject() 測試對象是否是純粹的對象(通過 "{}" 或者 "new Object" 創(chuàng)建的)  

isFunction() 檢測變量是否為一個Javascript 函數(shù)。  

isNumeric() 檢測變量是否是一個數(shù)字。  


(11)isWindow()

isWindow() 檢測變量是否為一個window對象。

$.isWindow( window );   // true  


(12)makeArray()

makeArray()用來轉(zhuǎn)換一個類似數(shù)組的對象成為真正的JavaScript數(shù)組。

$.makeArray( object );

例子:

var obj = {name:'tg',age:1};   

console.log($.isArray(obj));   // false

var arr = $.makeArray(obj);   

console.log($.isArray(arr));  // true


(13) now()

now() 返回一個數(shù)字(時間戳),表示當(dāng)前時間。

$.now();  // 1477884817100


(14)解析字符串

parseHTML() 將字符串解析到一個DOM節(jié)點的數(shù)組中。  

$.parseHTML( htmlString [, context ] [, keepScripts ] )

參數(shù):

 htmlString : 需要解析并轉(zhuǎn)為DOM節(jié)點數(shù)組的HTML字符串。  

 context :(Element)指定在哪個Document中創(chuàng)建元素,默認(rèn)為當(dāng)前文檔的document。  

 keepScripts : 指定傳入的HTML字符串中是否包含腳本,默認(rèn)為false。


var str = '<div class="item">123<span>31</span></div>'; 

var html = $.parseHTML(str); 

$('.box').append(html);


// <div class="box"><div class="item">123<span>31</span></div></div>


parseJSON() 接受一個標(biāo)準(zhǔn)格式的 JSON 字符串,并返回解析后的 JavaScript 對象。

$.parseJSON( jsonString );

jsonString必須是標(biāo)準(zhǔn)格式的JSON字符串,例如:屬性名稱必須加雙引號、字符串值也必須用雙引號。

  例子:

var obj = $.parseJSON('{"name": "tg","age": 1}');   

console.log(obj.name); // "tg"


parseXML() 解析一個字符串到一個XML文檔。



(15)trim()

trim()用來去掉字符串起始和結(jié)尾的空格。

$.trim( string );

例子:

var value = ' tg ';   

console.log(value);    // "  tg  "

console.log($.trim(value));  // "tg"


(16) type()

type()方法用來確定JavaScript內(nèi)置對象的類型,并返回小寫形式的類型名稱。

$.type( object );

例子:

$.type(true);  // boolean

$.type( 2 );   // number


(17)unique()

unique方法用來刪除數(shù)組中重復(fù)元素。

$.unique( array );

注意:只處理刪除DOM元素數(shù)組,而不能處理字符串或者數(shù)字?jǐn)?shù)組。







以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號