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条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?