2011-06-06 60 views
10

比方说,我有,提取一些图像源,像这样的页面:jQuery API中没有索引的.get()的原因是什么?

<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数组,但数组对象;我们知道这一点,因为我们可以对由选择器返回的对象和srcs.constructor != Array这个事实进行jQuery API调用。

jQuery API提供了一个.get() method,当没有参数时,它返回一个“标准”数组。是否有令人信服的理由使用标准数组而不是类似数组的对象,还是仅仅为了完整而包含此方法?

[编辑]

换一种方式 - 什么是JavaScript阵列,由一个jQuery选择器返回的数组状物体之间的区别是什么?

+0

+1 for _interesting _... – pixelbobby 2011-06-06 15:17:20

+0

任务继续! http://stackoverflow.com/questions/6253601/how-to-multidimesional-array-as-follows-in-javascript/6253693#6253693 – 2011-06-06 15:19:27

回答

2

它允许您使用jQuery没有的标准数组方法,例如push

特别是,jQuery对象旨在是不可变的,而数组不是。

1

get的主要优点是可以使负指数如-1获得最后一个元素。没有参数只是让你获得原始的解包匹配元素数组。

+0

+1指出负面指标! – maerics 2011-06-07 18:23:48

相关问题