crossfire_sli 2011-12-30 21:00
浏览 328
已采纳

JS数组与jQuery对象构成的数组的差异

[code="js"]
var a = new Array();
a.push("a");
a.push("B");
a.push(1);
a.push(2);
[/code]
firebug堆栈截图:
[img]http://dl.iteye.com/upload/attachment/614603/432170df-0715-309a-8a3d-1adebc54c087.png[/img]
Array是JS内置类型。所以a是标准的JS数组。

[code="html"]


文本块1


文本块2



文本块3

[/code]

[code="js"]
var spans = $("span");
var _spans = document.getElementsByTagName("span");
[/code]
变量截图如下:

[img]http://dl.iteye.com/upload/attachment/614591/a2d370fb-1f6a-3426-bc4c-f3b6aa3c2c1c.png[/img]

spans是jQury对象,且是数组,其元素span为DOM元素。

[img]http://dl.iteye.com/upload/attachment/614595/56d43667-d44c-3dd0-9459-48a03af7450e.png[/img]

_spans是span构成的数组,而span是DOM元素。

我的问题是:
1、_spans和a同是JS数组,为什么firebug里截图属性不一致?比如a有length的属性没有列出来,而_spans则把length列出来了。
2、spans既作为数组又作为jQuery对象,这与JS的数组定义矛盾吗?
多谢!

  • 写回答

2条回答 默认 最新

  • iteye_5364 2012-01-03 19:34
    关注

    1、_spans不是数组,是一个DOM对象集合,有length属性,可遍历,但不是数组,你可以调用instanceof Array 方法进行测试。
    2、spans也不是数组,而是JQuery封装好的对象,从其各种属性就可以看出来。
    不要被表面现象所迷惑。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 R语言 拟时序分析降维图如何减少分支
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统