jQuery1.6 使用方法一
jQuery1.6 使用方法一
发布时间:2016-12-30 来源:查字典编辑
摘要:error:function(msg){//声明错误throwmsg;},parseJSON:function(data){//把字符串转换...

error: function( msg ) {//声明错误

throw msg;

},

parseJSON: function( data ) {//把字符串转换成json格式

if ( typeof data !== "string" || !data ) {//首先判断是否存在,是否为字符串

return null;

}

data = jQuery.trim( data );//去掉前后空白

if ( window.JSON && window.JSON.parse ) {//高级版本有原生JSON转换函数window.JSON

return window.JSON.parse( data );

}

if ( rvalidchars.test( data.replace( rvalidescape, "@" )//

.replace( rvalidtokens, "]" )//

.replace( rvalidbraces, "")) ) {//进行简单的检验,对{true:1},{"a",{}}....都通过

//rvalidchars = /^[],:{}s]*$/,

//rvalidescape = /(?:["/bfnrt]|u[0-9a-fA-F]{4})/g,u[0-9a-fA-F]{4}匹配中英文和转义符

//rvalidtokens = /"[^"nr]*"|true|false|null|-?d+(?:.d*)?(?:[eE][+-]?d+)?/g,//匹配字符串中不含有“”、“n”、“r”、布尔值、null、数字

//rvalidbraces = /(?:^|:|,)(?:s*[)+/g,匹配(开始为空或者:或者,)(后面跟随零或多个空格,最后跟随[) 如 [、: [、,[、, [等等

return (new Function( "return " + data ))();

}

jQuery.error( "Invalid JSON: " + data );

},

parseXML: function( data , xml , tmp ) {不明白传入xml tmp用处

if ( window.DOMParser ) { // 标准

//DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。要使用 DOMParser,使用不带参数的构造函数来实例化它,然后调用其 //parseFromString() 方法:

tmp = new DOMParser();

xml = tmp.parseFromString( data , "text/xml" );

} else { // IE

xml = new ActiveXObject( "Microsoft.XMLDOM" );

xml.async = "false";

xml.loadXML( data );

}

tmp = xml.documentElement;

if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {//判断返回的结果是否为空,是否不是节点,是否报错

jQuery.error( "Invalid XML: " + data );

}

return xml;

}

globalEval: function( data ) {//把data变为可执行

if ( data && rnotwhite.test( data ) ) {//检查是否存在,是否不为空

( window.execScript || function( data ) {

window[ "eval" ].call( window, data );//window.eval.call(window,data)这种方式,在某些情况下IE下也不能改变上下环境所以只能针对IE使用window.execScript,其他流浪器使用window.eval.call(window,data);

} )( data );

}

},

nodeName: function( elem, name ) {

return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();//判断是否是节点,节点名默认是大写,为了保证能够正确判断,都转化成相同格式(大写)

},

each: function( object, callback, args ) {

var name, i = 0,

length = object.length,//window,String,Function,Array类型的不为undefined;..

isObj = length === undefined || jQuery.isFunction( object );//主要为了区分开对象和数组

if ( args ) {//如果没有传入参数,会用默认的名和值来作为参数,如果有参数,就使用传入的参数

if ( isObj ) {

for ( name in object ) {

if ( callback.apply( object[ name ], args ) === false ) {

break;

}

}

} else {

for ( ; i < length; ) {

if ( callback.apply( object[ i++ ], args ) === false ) {

break;

}

}

}

} else {//如果没有传入参数,

if ( isObj ) {

for ( name in object ) {// object[ name ]值作为当前对象,把名和值作为参数

if ( callback.call( object[ name ], name, object[ name ] ) === false ) {//判断回调函数返回值,决定是否继续循环

break;

}

}

} else {

for ( ; i < length; ) {//object[ i ]值作为当前对象,把名(i为先后顺序)和值作为参数

if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {//判断回调函数返回值,决定是否继续循环

break;

}

}

}

}

return object;

},

trim: trim ?//检测是否有原生trim方法,如果参数text !=就进行截取前后空白,否则返回空,没有原生trim的话,强制转换为字符串再进行正则替换,否则报错,使用正则替换(trimLeft = /^s+/,//匹配左空白,trimRight = /s+$/,//匹配右空白),

function( text ) {

return text == null ?

"" :

trim.call( text );

} :

function( text ) {

return text == null ?

"" :

text.toString().replace( trimLeft, "" ).replace( trimRight, "" );

},

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类