makeArray: function( array, results ) {//转换一个类似数组的对象成为真正的JavaScript数组。 results为可选参数 var ret = results || [];//results作为存放arry的数组,如果没有定义就设置为空数组 if ( array != null ) {{//window,String,Function,Array类型的.length不为undefined;(document.getElementById IE 为undefined,jQuery.type(document.getElementById )为object,所以类似这样的方法在IE下比较特别,可以jquery里的type方法) var type = jQuery.type( array ); if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) push.call( ret, array );// 传入的对象不是数组,就push加入ret数组中 } else { jQuery.merge( ret, array );//传入对象是数组或者类似数组,直接合并到ret数组中 } } return ret; }, inArray: function( elem, array ) {//搜索数组中指定值并返回它的索引(如果没有找到则返回-1)。 if ( indexOf ) {//ECMA - 262标准的浏览器都支持,IE系列要到IE9才支持Array.prototype.indexOf, return indexOf.call( array, elem ); } for ( var i = 0, length = array.length; i < length; i++ ) {//IE9以下版本,通过循环数组来判断 if ( array[ i ] === elem ) { return i; } } return -1; }, merge: function( first, second ) {//合并数组 var i = first.length, j = 0; if ( typeof second.length === "number" ) {//简单检测对象是否有length属性,有则循环添加到操作数组后面 for ( var l = second.length; j < l; j++ ) {//String,Array类型 first[ i++ ] = second[ j ]; } } else { while ( second[j] !== undefined ) { first[ i++ ] = second[ j++ ]; } } first.length = i; return first; }, grep: function( elems, callback, inv ) {//查找满足过滤功能数组元素。原始数组不受影响。 var ret = [], retVal; inv = !!inv;//转化成布尔值类型,如果没有明确指定inv或者指定为false,inv=false; for ( var i = 0, length = elems.length; i < length; i++ ) { retVal = !!callback( elems[ i ], i );//转化成布尔值类型 if ( inv !== retVal ) {//callback返回的结果如果与inv相反,即保留 ret.push( elems[ i ] ); } } return ret; },
推荐阅读
jQuery中需要注意的细节问题小结
1. $.find()与$.children()的区别 有如下HTML片段: 复制代码 代码如下: <div id="div_four"> <input id="one"/><input id="two"/> <div><input id="three"/></div> </div> 1. find() 返回元素下所有指定元素,不>>>详细阅读
本文标题:jQuery1.6 使用方法二
地址:http://www.17bianji.com/kaifa2/JS/23877.html
1/2 1