jQuery.makeArray()
转换一个类似数组的对象成为真正的JavaScript数组。
jQuery.makeArray(obj)
- obj类型: PlainObject。转换成一个原生数组的任何对象。
一般来说,无论是在jQuery和JavaScript中很多方法都返回类似数组的对象。举例来说,jQuery的代理函数$()
返回一个jQuery对象具有许多的数组的属性。(length,[]
数组访问运算符等),但和数组并不完全一样,缺少一些对数组的内置方法(如.pop()
和.reverse()
)。
请注意,转换后,任何有特殊功能的对象(如在我们的例子中jQuery方法)将不再存在。现在的对象是一个普通的数组。
例子
将一个 HTMLElements 集合转换成对应的数组。
<!DOCTYPE html> <html> <head> <style> div { color:red; } </style> <script src="https://www.lanmper.cn/static/js/jquery-3.5.0.js"></script> </head> <body> <div>First</div> <div>Second</div> <div>Third</div> <div>Fourth</div> <script>var elems = document.getElementsByTagName("div"); // returns a nodeListvar arr = jQuery.makeArray(elems); arr.reverse(); // use an Array method on list of dom elements $(arr).appendTo(document.body); </script> </body> </html>
First
Second
Third
Fourth
将一个 jQuery 对象转换成一个数组。
var obj = $('li');var arr = $.makeArray(obj);
Result:
(typeof obj === 'object' && obj.jquery) === true; jQuery.isArray(arr) === true;