遍历文档以查找数组

时间:2012-05-27 20:22:09

标签: jquery arrays iteration each

抱歉,我是新来的,我的代码可能无法正常显示......

如何迭代文档以使用.each()?

查找数组

我在想这样的事情:

//-----START OF CODE----\\
var a = new Array("a0", "a1", "a3");
var b = new Array("b0", "b1", "b3");
var i = 0;

function CountArrays()
{    
    $('Array').each(function(){

        i++;            
    });
    alert("There are " + i + " arrays in this document!");
}

CountArrays();
//-----END OF CODE----\\

但$('Array')似乎不太合适,因为我没有收到警报!

感谢您的帮助! :)

1 个答案:

答案 0 :(得分:1)

不,不。这不起作用。请熟悉jQuery库。

$('foo');

$()函数除了CSS Selector作为参数并返回一个jQuery对象,你不能只将变量放入其中。您的Javascripts和HTML是两回事。

如果要在代码中迭代数组,请使用以下命令:

var a = ["Hello","World"];
for (var i = 0; i < a.length; i++) {
    alert(a[i]);
}

有很多方法可以迭代数组,请参阅this以获取参考。

第二:如前所述,使用alert()调试并不是一个好主意,特别是在循环时。 当您使用Chrome或Firefox时,请使用console.log('string', variable)。它将您的变量直接写入控制台,它还记录了alert()无法实现的完整对象。

评论后更新:您无法迭代javascript中的所有现有数组。那是因为您无法列出所有现有变量。一个问题是,您使用每个新功能创建一个新范围。

函数内部的变量不知道外面的变量。例如,这是一段有效的代码:

var a = 5;

function foo() {
    var a = 6;

    return a;
}

console.log(a); // prints "5"
console.log(foo()); // prints "6"

这两个变量都称为a,但它们包含不同的数据。 有关详细信息,请参阅此答案:https://stackoverflow.com/a/2051693/735226

顺便说一下:为什么你甚至想知道脚本中有多少个数组?因为对象可以包含这样的数组

var objWithArray = {
    foo:5,
    bar:[3, 4, 5, 6, 7] // objWithArray.bar would be an array
};

没有办法获得所有数组。 Javascript是一种无类型且可变的语言。

相关问题