jquery中的toArray和makeArray之间的区别 [英] Difference between toArray and makeArray in jquery
问题描述
我正在尝试将DOM元素转换为对象的集合。但是我不知道toArray()和makeArray()之间的主要区别是什么?
HTML
< div id =firstdiv>
< div> foo1< / div>
< div> foo2< / div>
< div> foo3< / div>
< / div>
我使用以下代码将节点转换为数组:
JQUERY
console.log($(#firstdiv>格)的toArray())。
console.log($。makeArray($(#firstdiv)。html()));
我不太明白他们之间的区别,我已经搜索了这个问题,但不是发现任何明确的解释。
提前感谢
根据jQuery文档: / p>
toArray
是一个jQuery对象(它围绕一组DOM元素包装)的方法。此方法将此组DOM元素的成员提取到javascript Array:
jQuery('。some-class')toArray ) - > [dom_el_1,dom_el_2,dom_el_3,...]
makeArray
(这是jQuery对象的静态方法)需要数组样对象(jQuery,arguments,nodeList,...),并从中构造一个正确的JavaScript数组,因此可以在结果中调用Array的方法: p>
//返回一个nodeList(这是数组像项目),但不是实际的数组
//你不能调用反向on int
var elems = document.getElementsByTagName(div);
var arr = jQuery.makeArray(elems);
arr.reverse(); //在dom元素列表中使用Array方法
$(arr).appendTo(document.body);
总而言之, toArray
transforms jQuery元素集到javascript Array
, makeArray
转换任何像对象的数组到javascript Array
。
I'm trying to convert the DOM element as an collections of object. But I don't know what the main difference between toArray() and makeArray()
HTML
<div id="firstdiv">
<div>foo1</div>
<div>foo2</div>
<div>foo3</div>
</div>
I used the following code to convert the nodes to an array:
JQUERY
console.log($("#firstdiv > div").toArray());
console.log($.makeArray($("#firstdiv").html()));
I can't quite understand the difference between them, and I've searched for this question but not found any clear explanation.
Thanks in advance.
According to jQuery documentation:
toArray
is a method on jQuery Object (which is wrapper around a set of DOM elements). This method extracts members of this set of DOM elements to javascript Array:
jQuery('.some-class').toArray() -> [ dom_el_1, dom_el_2, dom_el_3, ... ]
makeArray
(which is a "static method" on jQuery object) takes array-like object (jQuery, arguments, nodeList, ...) and constructs a proper javascript Array from it, so you can call methods of Array on the result:
// returns a nodeList (which is array like item) but not actual array
// you can't call reverse on int
var elems = document.getElementsByTagName("div");
var arr = jQuery.makeArray(elems);
arr.reverse(); // use an Array method on list of dom elements
$(arr).appendTo(document.body);
In summary, toArray
transforms jQuery element set to javascript Array
, makeArray
transforms any array like object to javascript Array
.
这篇关于jquery中的toArray和makeArray之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!