JQuery:我如何调用一个多次获得两个争论的函数,每次都有不同的争论?

时间:2017-04-20 20:13:42

标签: javascript jquery html

我有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的新手所以我的细节可能没有足够的意义,所以请告诉我我应该给出的其他细节。感谢。

2 个答案:

答案 0 :(得分:0)

您的示例中有几个错误。首先,addPictures函数错过了结束括号。我想这是一个复制粘贴错误。

另一个文件夹循环更难发现:for(folder = 1; folder <= x; folder++);

由于分号;,循环运行为空。尝试for(folder = 1; folder <= x; folder++) console.log(folder); console.log(folder)

当您将x设置为例如3时,文件夹循环会将文件夹从1增加到3(实际上,通过循环到达4之后)。 <{1}}不会发生这种情况,因为x==1永远不会被执行。

因此,当您拨打folder++时,您要从文件夹3而不是2中添加1到10张图片。

从该循环中删除分号将提供更合理的输出。但是,我仍然不确定,这是一个理想的输出。如果删除分号,addPictures(2, 10)实际上会从目录2添加图片1到10,但它也会从目录1中获取图片1到10。这是因为第一次迭代将保持addPictures(2, 10),并且只有第二次迭代将具有folder=1。 `addPictures(3,36)会尝试从目录1,2和3加载图片1到36。

因此我想你想要的是:

folder=2

答案 1 :(得分:0)

您的功能是尝试将 y 图片从 x 文件夹中删除。如果是这种情况,您可以使用此功能

Set sht = ActiveWorkbook.ActiveSheet
tk2 = Cells(Rows.Count, "A").End(xlUp).Row
If sht.Cells(tk2, "A").Value = "Task 2" Then
    sht.Cells(tk2, "A").Offset(1).EntireRow.Insert
End If