抱歉,我是新来的,我的代码可能无法正常显示......
如何迭代文档以使用.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')似乎不太合适,因为我没有收到警报!
感谢您的帮助! :)
答案 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是一种无类型且可变的语言。