• jQuery1.6 方法1


    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 = /"[^"\\\n\r]*"|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, "" );

    },

  • 相关阅读:
    推荐谷歌浏览器12款常用的扩展
    推荐谷歌浏览器12款常用的扩展
    推荐VSCode12个比较实用的插件
    推荐VSCode12个比较实用的插件
    Linux中Shell循环结构for用法笔记
    django之上传图片
    django之中间件设置
    django之admin站点
    django之管理静态文件
    django之设置分页
  • 原文地址:https://www.cnblogs.com/tellme/p/2176331.html
Copyright © 2020-2023  润新知