-1

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

我将如何遍历文档以查找带有 .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') 似乎不是要走的路,因为我没有收到警报!

谢谢你的帮助!:)

4

1 回答 1

1

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

$('foo');

$()函数将 CSS 选择器作为参数除外并返回一个 jQuery 对象,您不能只将变量放入其中。你的 Javascripts 和你的 HTML 是两个不同的东西。

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

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

有很多方法可以遍历数组,请参阅this以获得参考。

第二:如前所述,使用alert()调试不是一个好主意,尤其是在循环某些东西时。console.log('string', variable)当您使用 Chrome 或 Firefox 时,请改用。它将您的变量直接写入控制台,它还记录完整的对象,而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 是一种无类型且可变的语言。

于 2012-05-27T20:28:38.733 回答