返回值:ArrayjQuery.makeArray(obj)

将一个类数组(array-like)的对象,转换成一个真正的 JavaScript 数组。

一般来说,jQuery 和 JavaScript 的很多方法会返回类数组(array-like)的对象。例如,jQuery 的工厂函数 $() 返回一个 jQuery 对象,该对象有很多数组的属性(例如,取得数组 [] 长度的操作符 length 等),但是它和真正的数组不完全一样,并且缺少一些数组内建的方法(例如, .pop().reverse())。

注意,在转换之后,元素任何特殊的功能都将不复存在(例如,在例子中提到的 jQuery 方法)。因为转换后的对象已经是一个纯的数组。

示例:

将一个 HTMLElements 集合转换成对应的数组。

<!DOCTYPE html>
<html>
<head>
<style>
  div { color:red; }
  </style>
<script src="jquery.min.js"></script>
</head>
<body>

<div>First</div>
  <div>Second</div>  
  <div>Third</div>

  <div>Fourth</div>

<script>


    var elems = document.getElementsByTagName("div"); // returns a nodeList
    var arr = jQuery.makeArray(elems);
    arr.reverse(); // use an Array method on list of dom elements
    $(arr).appendTo(document.body);


</script>
</body>
</html>

演示:

示例:

将一个 jQuery 对象转换成一个数组。

jQuery 代码:

    var obj = $('li');
    var arr = $.makeArray(obj);
结果:
(typeof obj === 'object' && obj.jquery) === true;
jQuery.isArray(arr) === true;