繁体   English   中英

jQuery:如何调用一个函数,该函数需要两次争论,而每次争论都不同?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM