假设我有一个页面提取一些图像源,如下所示:
<div id="d"> <img src="foo.gif"/> <img src="bar.gif"/> <img src="gah.gif"/> </div> <script type="text/javascript"> var srcs = $('div#d > img').map(function(){return this.src}); // srcs => ['foo.gif','bar.gif','gah.gif'] </script>
请注意,srcs不是JavaScript数组,而是数组类对象;我们知道这一点,因为我们可以对由选择器返回的对象进行jQuery API调用,以及srcs.constructor!= Array的事实.
jQuery API提供了一个.get()
method,当没有参数时,返回一个“标准”数组.使用标准数组而不是类数组的对象有一个引人注目的理由,还是仅仅包括这个方法的完整性?
[编辑]
换句话说 – JavaScript数组和jQuery选择器返回的类似数组的对象有什么不同?
解决方法
它允许您使用jQuery没有的标准数组方法,例如push.
特别是,jQuery对象是不可变的,而数组不是.