jQuery1.6 類型判斷實(shí)現(xiàn)代碼
更新時(shí)間:2011年09月01日 20:57:36 作者:
jQuery1.6 類型判斷實(shí)現(xiàn)代碼,學(xué)習(xí)jquery的朋友可以參考下。
首先定義了
全局變量class2type = {};
rdigit = /\d/,//正則判斷是否是數(shù)字
toString = Object.prototype.toString;
通過(guò)jQuery.each,定義class2type的屬性和值:
jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
class2type[ "[object " + name + "]" ] = name.toLowerCase();
});
type: function( obj ) {
return obj == null ?String( obj ) :class2type[ toString.call(obj) ] || "object";//js 里一切都是對(duì)象,所以可以用toString.call(obj)返回對(duì)應(yīng)對(duì)象類型
//如果直接使用這個(gè)方法來(lái)判斷類型的話,IE下document.getElementById認(rèn)為是object,其他瀏覽器則認(rèn)為是function
//如果傳入的值是NaN的話,會(huì)返回"number"
}
isFunction: function( obj ) {return jQuery.type(obj) === "function";}//在IE下,如果傳入document.getElementById,返回的是false,IE為它是object
isArray: Array.isArray || function( obj ) {return jQuery.type(obj) === "array";}//如果原生Array擁有isArray方法則使用Array.isArray,否則自定義這個(gè)方法
isWindow: function( obj ) {return obj && typeof obj === "object" && "setInterval" in obj;}//判斷是否為window對(duì)象
isNaN: function( obj ) {return obj == null || !rdigit.test( obj ) || isNaN( obj );}//
isEmptyObject: function( obj ) {
for ( var name in obj ) {//判斷的依據(jù)是看對(duì)象是否有屬性或者方法
return false;
}
return true;
}
全局變量class2type = {};
rdigit = /\d/,//正則判斷是否是數(shù)字
toString = Object.prototype.toString;
通過(guò)jQuery.each,定義class2type的屬性和值:
復(fù)制代碼 代碼如下:
jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
class2type[ "[object " + name + "]" ] = name.toLowerCase();
});
type: function( obj ) {
return obj == null ?String( obj ) :class2type[ toString.call(obj) ] || "object";//js 里一切都是對(duì)象,所以可以用toString.call(obj)返回對(duì)應(yīng)對(duì)象類型
//如果直接使用這個(gè)方法來(lái)判斷類型的話,IE下document.getElementById認(rèn)為是object,其他瀏覽器則認(rèn)為是function
//如果傳入的值是NaN的話,會(huì)返回"number"
}
isFunction: function( obj ) {return jQuery.type(obj) === "function";}//在IE下,如果傳入document.getElementById,返回的是false,IE為它是object
isArray: Array.isArray || function( obj ) {return jQuery.type(obj) === "array";}//如果原生Array擁有isArray方法則使用Array.isArray,否則自定義這個(gè)方法
isWindow: function( obj ) {return obj && typeof obj === "object" && "setInterval" in obj;}//判斷是否為window對(duì)象
isNaN: function( obj ) {return obj == null || !rdigit.test( obj ) || isNaN( obj );}//
isEmptyObject: function( obj ) {
for ( var name in obj ) {//判斷的依據(jù)是看對(duì)象是否有屬性或者方法
return false;
}
return true;
}
相關(guān)文章
jQuery輕松實(shí)現(xiàn)表格的隔行變色和點(diǎn)擊行變色的實(shí)例代碼
下面小編就為大家?guī)?lái)一篇jQuery輕松實(shí)現(xiàn)表格的隔行變色和點(diǎn)擊行變色的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧2016-05-05
基于jQuery Ajax實(shí)現(xiàn)上傳文件
這篇文章主要為大家詳細(xì)介紹了jQuery Ajax上傳文件的相關(guān)代碼,需要的朋友可以參考下2016-03-03
jQuery實(shí)現(xiàn)簡(jiǎn)單的日期輸入格式化控件
本文給大家分享的是javascript實(shí)現(xiàn)簡(jiǎn)單的日期輸入格式化控件的方法和思路,非常的細(xì)致實(shí)用,推薦給小伙伴們2015-03-03
jquery實(shí)現(xiàn)從數(shù)組移除指定的值
這篇文章主要介紹了jquery實(shí)現(xiàn)從數(shù)組移除指定的值,涉及jQuery中g(shù)rep()方法對(duì)數(shù)組元素進(jìn)行過(guò)濾篩選的技巧,需要的朋友可以參考下2015-06-06
用jQuery技術(shù)實(shí)現(xiàn)Tab頁(yè)界面之二
這個(gè)tab頁(yè)是把數(shù)據(jù)全部取回來(lái)再顯示,所以沒有數(shù)據(jù)緩存的特點(diǎn)。但是因?yàn)閿?shù)據(jù)全部是顯示的html代碼,所以對(duì)搜索引擎是友好的,也許對(duì)seo有好處。2009-09-09
jQuery使用siblings獲取某元素所有同輩(兄弟姐妹)元素用法示例
這篇文章主要介紹了jQuery使用siblings獲取某元素所有同輩(兄弟姐妹)元素用法,結(jié)合簡(jiǎn)單實(shí)例形式分析了siblings()函數(shù)獲取同輩元素的操作技巧,需要的朋友可以參考下2017-01-01
jQuery對(duì)指定元素中指定字符串進(jìn)行替換的方法
這篇文章主要介紹了jQuery對(duì)指定元素中指定字符串進(jìn)行替換的方法,涉及jQuery針對(duì)字符串的匹配與替換的操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03

