返回值:ArrayjQuery.makeArray(obj)
将一个类数组(array-like)的对象,转换成一个真正的 JavaScript 数组。
-
1.2 新增jQuery.makeArray(obj)
obj (Object) 任何将要被转换成原生数组的对象。
一般来说,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;