jquery utilities

utilities有些特别, 并不是jquery对象的方法, 需要用jQuery.的方式调用,有些像静态方法。因此很容易想到那些xxUtil的静态方法工具类。

jQuery.each( object, callback )
首先这种方式跟$().each() 不同, $().each()只能对jquery对象进行迭代,而jQuery.each()可以对anything
object指定迭代的对象, callback指定handler;如果callback中返回false,将打断循环。
看一个例子:
    var arr = [ "one", "two", "three", "four", "five" ];
    var obj = { one:1, two:2, three:3, four:4, five:5 };

    jQuery.each(arr, function(i, val) {
      alert(i); //it's the index
      alert(this); alert(val);
      return (this != "four"); // will stop running to skip "five"
    });

    jQuery.each(obj, function(i, val) {
       alert("key is "+i);
       alert("val is "+val);
    });

通过例子,可以看出callback可以有两个参数: index, val
对于数组的遍历很容易理解, 如果是一个hash对象,那么index代表key。
而且这两个参数是可以不写的, this等价于val, 没有写val参数的时候,可以用this获取它的值。

jQuery.extend( target, object1, objectN )
用object1...objectN对target对象进行扩展, 相同属性将被覆盖。
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);

settings将会变成{validate:true, limit:5, name:"bar"}

jQuery.grep( array, callback, invert )
可以用来塞选一组对象, callback决定是否保留对象
function callback(elementOfArray, indexInArray) {
  var shouldKeepIt;

  this; // unmapped

  return shouldKeepIt;
}

可以看出, index的位置跟each不同, 跑到了第二个参数的位置。
默认情况下, 当callback 返回true则保留对象,否则去掉
invert=false, 跟默认情况一致,callback返回true则保留
invert=true,则跟默认相反,callback返回true则去掉

jQuery.makeArray( obj )
将dom的element数组转成jquery的数组,例如:
    var arr = jQuery.makeArray(document.getElementsByTagName("div"));
    arr.reverse(); // use an Array method on list of dom elements
    $(arr).appendTo(document.body);  	

以上实现了div数组倒置,通过makeArray之后得到jquery数组对象,通过jquery对象的方法,很方便进行倒置,轻松添加到body。

jQuery.map( array, callback ) Returns: Array
不是将数组转换map,而是将数组转换成另外一种形式, callback指定了转换方式,例如:
var arr = [ "a", "b", "c", "d", "e" ]
    $("div").text(arr.join(", "));

    arr = jQuery.map(arr, function(n, i){
      return (n.toUpperCase() + i);
    });
    $("p").text(arr.join(", "));

    arr = jQuery.map(arr, function (a) { return a + a; });
    $("span").text(arr.join(", "));

以上两次map,arr得到如下数组
A0, B1, C2, D3, E4
A0A0, B1B1, C2C2, D3D3, E4E4
两次map,callback的写法有不同
1)两个参数,分别是数组中一个元素的值和index
2)一个参数, 数组中一个元素的值。

jQuery.inArray( value, array ) Returns: Number
返回value在array中的index,如果不存在则返回-1

jQuery.unique( array ) Returns: Array
去掉array重复元素, 并返回去掉重复元素之后的array

jQuery.isFunction( obj )
检查obj是否是一个function,例如:
    function stub() {
    }
    var objs = [
          function () {},
          { x:15, y:20 },
          null,
          stub,
          "function"
        ];

    jQuery.each(objs, function (i) {
      var isFunc = jQuery.isFunction(objs[i]);
      $("span:eq( " + i + ")").text(isFunc);
    });


jQuery.trim( str )
去掉string首尾的空格

你可能感兴趣的:(jquery)