[英]JQuery: How can I call a function that takes two arguements multiple times, each time with different arguements?
我有20个文件夹,每个文件夹都有一组图像,有些文件夹只有8张图片,而其他文件夹最多有200张图片。所有文件夹的名称都从1到20,并且每个文件夹中的所有图片也都按编号命名。 我想将所有文件夹中的所有图片附加到HTML文档中。 这就是我所拥有的:
var storedPictures = [];
var picture, folder;
function addPictures(x, y) {
for(folder = 1; folder <= x; folder++);
for(picture = 1; picture <= y; picture++) {
storedPictures.push(
'<img ' +
'src="/path/to/file/' + folder + '/' +
picture + '.jpg">'
);
}
我还有其他代码,将第一张图片作为缩略图并将其附加在页面上,当用户单击它时,将打开一个新窗口,其中包含该集合中的所有图片。 当我调用如下函数时,它仅适用于一个文件夹及其集合:
addPictures(1, 26)
我从文件夹1中获得了所有26张图片。但是我希望从所有文件夹中获得所有图片,并且多次写入调用不起作用:
addPictures(1, 26)
addPictures(2, 10)
addPictures(3, 36)
这样,我只会得到我首先调用的集合(1、26)。
我是javascript的新手,所以我的详细信息可能没有足够的意义,所以请告诉我我还应该提供哪些其他详细信息。 谢谢。
您的示例中有几个错误。 首先是addPictures函数缺少右括号。 我想这是一个复制粘贴错误。
另一个是文件夹循环,很难发现: for(folder = 1; folder <= x; folder++);
由于分号;
,循环为空。 尝试做for(folder = 1; folder <= x; folder++) console.log(folder); console.log(folder)
for(folder = 1; folder <= x; folder++) console.log(folder); console.log(folder)
。
发生的情况是,当您将x
设置为例如3
,文件夹循环将文件夹从1递增到3(实际上,通过跳出循环,它会变为4)。 对于x==1
实际上不会发生这种情况,因为从不执行folder++
。
因此,当您调用addPictures(2, 10)
,您将从文件夹3中而不是2中添加编号为1到10的图片。
从该循环中删除分号将提供更合理的输出。 但是,我仍然不确定,这是否是理想的输出。 如果删除分号,则addPictures(2, 10)
实际上将从目录2添加图片1至10,但也会从目录1获取图片1至10。 这是因为第一次迭代将保留folder=1
而只有第二次迭代将具有folder=2
。 `addPictures(3,36)会尝试从目录1、2和3加载图片1到36。
因此,我想您想要的是:
function addPictures(folder, maxPicNumber) {
for(picture = 1; picture <= maxPicNumber; picture++) {
storedPictures.push(
'<img ' +
'src="/path/to/file/' + folder + '/' +
picture + '.jpg">'
);
}
}
您的函数尝试做的是从x文件夹中拍摄y张图片。 如果是这样,您可以使用此功能
var storedPictures = [];
function addPictures(x, y) {
for(var folder = 1; folder <= x; folder++) {
for(var picture = 1; picture <= y; picture++) {
storedPictures.push(
'<img ' +
'src="/path/to/file/' + folder + '/' +
picture + '.jpg">'
);
}
//console.log(storedPictures); //print the result to console
}
}
addPictures(2,20);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.