共享学习Jquery源码的一些东西
jQuery.extend({
 
expando  :  生成唯一JQ字符串(内部)
noConflict()  :  防止冲突
----------------------------------------------
isReady  :  DOM是否加载完(内部)
        $(function(){});
        rootjQuery.ready();=>$(doucment).ready(function(){});=>$().ready();=>jQuery.ready.promise().done(fn);//延迟对象==>$.ready();
        DOMContentLoaded
        window.onload=function(){};
----------------------------------------------
readyWait  :  等待多少文件的计数器(内部)
----------------------------------------------
holdReady()  :  推迟DOM触发
            a.js={<script>alert(1)</script>}
$.holdReady(true);
$.getScript("a.js",function(){
    $.holdReady(false);
});
alert(2);
---------------------------------------
ready()  :  准备DOM触发
--------------------------------------------
isFunction()  :  是否为函数
            alert(typeof alert);
IE8以前返回Object
---------------------------------
isArray()  :  是否为数组
          Array.isArray();
--------------------------------------
isWindow()  :  是否为window
          alert($.isWindow(window));=>true
          window作用:1.全局对象
                                   2.浏览器窗口
---------------------------------------
isNumeric()  :  是否为数字 
          alert(typrof 123);=>true
          alert(typeof NaN) ;=>true
           alert(isNumeric(123));=>true
            alert(isNumeric(NaN));=>false
            isFinite(Number.MAX_VALUE+1);//有限数字=>false
            isFinite(123123123);=>true    
---------------------------------------
type()  :  判断数据类型
        var a="Hello";=>String    
        var b=[];=>Array
        var c={};=>json
        var d=new Date();=>date
    alert({}.toString.call([]))=>[object array]
原生的js区分不了json,date,数组
--------------------------------------------
isPlainObject()  :  是否为对象自变量    
   ( 1.不是Object 2.Dom节点 3.Window)=>false;
   (constructor&&Object.prototype,"isprototype");
    var obj={};=>true
    var obj= new Object();=>true;
    var obj=[];=>false;
----------------------------------------------
isEmptyObject()  :  是否为空的对象
            var obj=null;
            var obj={};
            var obj=[];
            function aaa(){}
            var obj=new  aaa();
            $.isEmptyObject(obj)=>true
    ++++++++++++++++++++
        for(name  in  object ){}
        系统自带得 循环不到
----------------------------------------------
error()  :  抛出异常
          $.error("这是错误");
           便签
-----------------------------------------------
parseHTML()  :  解析节点
var str ="<li></li><li></li><script><\/script>";       
 $.parseHTML(str,documrnt,true);==>[<li>,<li>,<script>]
$.parseHTML(str,documrnt,false);==>[<li>,<li>]
$("<li></li>")=>$.parseHTML();
核心创建DOM:jQuery.buildFragment();
-----------------------------------------------
parseJSON()  :  解析JSON
var str='{"name":"Hello"}';
$.parseJSON(str);支持严格json格式
JSON.parse和eval;
JSON.stringify();【Json=>String】
------------------------------------------------
parseXML()  :  解析XML
<script>
var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>",
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$title = $xml.find( "title" );
// Append "RSS Title" to #someElement
$( "#someElement" ).append( $title.text() );
// Change the title to "XML Title"
$title.text( "XML Title" );
// Append "XML Title" to #anotherElement
$( "#anotherElement" ).append( $title.text() );
</script>
new DOMParser().parseFromString(data,"text/xml");支持IE8以上
<parsererror>错误信息</parsererror>
ActiveXObject低版本的XML解析
-------------------------------------------------
noop()  :  空函数
    noop:function(){},
--------------------------------------------------
globalEval()  :  全局解析JS
function test() {
jQuery.globalEval( "var newVar = true;" );//把局部变量转成全局变量
var newVar = true;//局部变量
}
test();
alert( newVar );
 
function test() {
  var val=eval;
   val("var a=1");
   window.eval("var a=1");
}
alert(1);
----------------------------------------------
camelCase()  :  转驼峰(内部)
margin-left  -> maginLeft
 
IE :  -ms-transform ->msTransfrom
其他 :-moz-transform ->MozTransfrom
 
----------------------------------------------
nodeName()  :  是否为指定节点名(内部)
$(function(){
    $.nodeName(document. documentElement,'html');=>true
    $.nodeName(document. body,'html');=>false
});
 
----------------------------------------------
each()  :  遍历集合
var arr=[1,2,3,4];
var json={"id":"111","name":"zhangsan "}
 
this ->{0:,1:,length:2}
$.each(arr,function(i,value){
       alert(value);
});
----------------------------------------------
trim()  :  去前后空格
IE 低版本需要自己写正则
var str ="  Hello    ";
alert("("+str+")");

alert("("+$.trim(str)+")");

----------------------------------------------
makeArray()  :  类数组转真数组
var str="Hello";
$.makeArray(str); -> [Hello]
----------------------------------------------
inArray()  :  数组版indexOf
var arr={'a','b','c','d'}
$.inArray('b',arr);  -> 2
$.inArray('w',arr);  -> -1
----------------------------------------------
merge()  :  合并数组
if : $.merge(['a','b'],['c','d']); ->['a','b','c','d']
else: $.merge(['a','b'],{0:'c',1:'d'}); ->{0:'a',1:'b',2:'c',3:'d'}
          $.merge({0:'a',1:'b',length:2},{0:'c',1:'d'}); -> {0:'a',1:'b',2:'c',3:'d',length:4}
          $.merge({0:'a',1:'b',length:2},['c','d']); -> {0:'a',1:'b',2:'c',3:'d',length:4}
----------------------------------------------
grep()  :  过滤新数组
var arr=[1,2,3,4];
arr=$.grep(arr,function(n,i){
    return n>2;
}); ->[3,4]
arr=$.grep(arr,function(n,i){
    return n>2;
},true); ->[1,2]
----------------------------------------------
map()  :  映射新数组
var arr=[1,2,3,4];
arr=$.map(arr,function(n){
        return n+1;
}); ->[2,3,4,5]
 
----------------------------------------------
guid  :  唯一标识符(内部)    
事件函数关联,查找和关联
----------------------------------------------
proxy()  :  改this指向
function show(n1,n2){
alert(n1);
alert(n2);
alert(this);
}
$.proxy(show,document)(3,4); ->3,4
$.proxy(show,document,3,4)(); ->3,4
$.proxy(show,document,3)(4); ->3,4
简化的写法:
var obj={
    show : function(){
        alert(this);
    }
}
$.proxy(obj.show,obj) ===$.proxy(obj,"show")
----------------------------------------------
access()  :  多功能值操作(内部)
$().css();  $().attr()  get/set
$(function(){
    $("#div1").css("background")//get
    $("#div1").css("background","yellow")//set
    $("#div1").css({background : "yellow" , width : "300px"}) //多值set
});
<div id='div1' style="width:100px;height:100;background:red"></div>
 
----------------------------------------------
now()  :  当前时间
$.now();//1970.1.1距今的毫秒数
now : Date.now 低版本的不支持
----------------------------------------------
swap()  :  CSS交换(内部)
$(function(){
    $("#div1").css("width")//jquery  ->100
     $("#div1").get(0).offserWidth;//源生display:none  ->0
});
<div id='div1' style="width:100px;height:100;background:red;display:none"></div>
实现方式 : 把值去掉,获取值,添加样式
 
----------------------------------------------
});
(819).jQuery.ready.promise = function(){};  监测DOM的异步操作(内部)
$().ready();
---------------------------------------------------------
function isArraylike(){}  类似数组的判断(内部)
function show(){
    arguments.isArraylike();
}
show('a','b','c','d');
 
------------------------------------------------------------
rootjQuery=jQuery(document);
 
 
 
 

jQuery扩展工具方法的更多相关文章

  1. jQuery常用工具方法

    前面的话 jQuery提供一些与元素无关的工具方法,不必选中元素,就可以直接使用这些方法.如果理解原生javascript的继承原理,那么就能理解工具方法的实质.它是定义在jQuery构造函数上的方法 ...

  2. jquery 扩展插件方法

    分析插件jquery.countdown.js (function($) { $.fn.countdown = function(options) { // default options var d ...

  3. jquery的工具方法isFunction/isArray/isWindow/isNumeric/isPlainObject/isEmptyObject

    isFunction : 是否函数 isArray : 是否数组 isWindow : 是否window isNumeric : 是否数字 type : 数据类型方法 isPlainObject : ...

  4. jquery 常用工具方法

    inArray(value, array [, fromIndex ])方法类似于原生javascript的indexOf()方法,没有找到匹配元素时它返回-1.如果数组第一个元素匹配参数,那么$.i ...

  5. jQuery 第九章 工具方法之插件扩展 $.extend() 和 $.fn.extend()

    $.extend() $.fn.extend() -------------------------------------------------- $.extend() 插件扩展(工具方法) jq ...

  6. Java程序猿的JavaScript学习笔记(9—— jQuery工具方法)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  7. jQuery工具方法

    目录 常用工具方法 判断数据类型的方法 Ajax操作 $.ajax 简便写法 Ajax事件 返回值 JSONP 文件上传 参考链接 jQuery函数库提供了一个jQuery对象(简写为$),这个对象本 ...

  8. 使用jquery获取url及url参数的方法及定义JQuery扩展方法

    1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识. 2.jquery获取 ...

  9. jQuery源代码 解析一 工具方法

    1. 外层沙箱以及命名空间$ 几乎稍微有点经验前端人员都这么做,为了避免声明了一些全局变量而污染,把代码放在一个"沙箱执行",然后在暴露出命名空间(可以为API,函数,对象): 2 ...

随机推荐

  1. POJ动态规划题目列表

    列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 13 ...

  2. centos6.4 挂载ntfs分区

    默认情况下,CentOS 6.4不支持Widows NTFS硬盘分区读写,要想把NTFS格式的磁盘挂载到CentOS 6.3下面需要安装第三方的插件ntfs-3g,这里我们采用编译安装插件. 1.安装 ...

  3. Storm ui 展示字段说明

    1.Storm ui 首页 主要分为4块: Cluster Summary,Topology summary,Supervisor summary,Nimbus Configuration,如下图所示 ...

  4. POJ 1258 Agri-Net (最小生成树)

    Agri-Net 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/H Description Farmer John has be ...

  5. IMAQ Flatten Image to String VI的参数设置对比

    无压缩 jpeg压缩 无损二元包装 仅JPEG压缩时有效 平化类型(指定字符串中存储什么类型的数据)   None JPEG PACKED BINARY Quality Image Image and ...

  6. CodeForces 706A Beru-taxi (数学计算,水题)

    题意:给定一个固定位置,和 n 个点及移动速度,问你这些点最快到固定点的时间. 析:一个一个的算距离,然后算时间. 代码如下: #pragma comment(linker, "/STACK ...

  7. C++中void型指针

    问题由来: PX_FORCE_INLINE void* operator new(size_t size, const char* handle, const char * filename, int ...

  8. pygame “音乐盒”---- 播放一首歌& 点击对话框后背景以及对话框大小改变

    有时,你用pygame写的游戏也许需要播放一些背景音乐,该怎么做呢,直接上代码: 下面的代码,有关于: 1>设置对话框图标.大小.标题 2>播放音乐 3>设置背景图片,以及获取背景图 ...

  9. Don't Repeat Yourself (不要重复你自己)

    DRY是指Don't Repeat Yourself特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性.简洁性,并且可能导致代码之间的矛盾.<The Pragmatic Programm ...

  10. BZOJ 4247 挂饰 背包DP

    4247: 挂饰 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id ...