jQuery.makeArray()

jQuery.makeArray( obj )返回类型:Array

描述:把一个类似数据的对象转换为真正的JavaScript数组。

很多方法,既有jQuery中的方法也有JavaScript中的方法,通常返回一个类似数组的对象。例如,jQuery工厂函数$()返回一个jQuery对象,具有很多数组的属性(length、[]数组访问运算符,等等),但是它并不与数组完全相同,缺少一些数组的内建方法(譬如.pop().reverse())。

请注意,在转换之后,对象所拥有的任何特殊的功能(譬如我们的示例中的jQuery方法)将不复存在。此对象现在是一个扁平数组。

示例:

把一个HTMLElement的集合变成它们的数组。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery.makeArray demo</title>
<style>
div {
color: red;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<div>First</div>
<div>Second</div>
<div>Third</div>
<div>Fourth</div>
<script>
// Returns a NodeList
var elems = document.getElementsByTagName( "div" );
// Convert the NodeList to an Array
var arr = jQuery.makeArray( elems );
// Use an Array method on list of dom elements
arr.reverse();
$( arr ).appendTo( document.body );
</script>
</body>
</html>

演示:

把一个jQuery对象变成数组。

1
2
var obj = $( "li" );
var arr = $.makeArray( obj );

输出结果:

1
2
( typeof obj === "object" && obj.jquery ) === true;
jQuery.isArray( arr ) === true;