【问题标题】:Jquery array loopjQuery数组循环
【发布时间】:2016-10-21 10:59:50
【问题描述】:

我试图在 Jquery 中遍历一个数组的内容,该数组包含一个地名列表,后跟一个 URL([0]name,[1]url,[2]name [3]url,等等。)。地名数据已通过 API 提取,因此有些数据未定义。下面是我当前迭代中的循环。

      for (var i=0; i<albums.length; i++){
            if ((albums[i] != "undefined") && (albums[i+1].indexOf("http") !== 1)){
                $("#thumbnail").css("overflow:", "auto");
                $("#thumbnail").css("max-height:", "100px");
                $("#thumbview").append('<div id="thumbnail"><img src='+[i+1]+' id="coverPhoto" height="320" width="420"></a></div>');
            }
            i++;
        };     

下面是当前结构的数组

数组[14]

[0]:"位置名称"[1]:"https://..."[2]:"位置名称"[3]:"https:/..."[4]:"位置名称"[5]:"https://..."[6]:"位置名称"[7]:"https://..."[8]:undefined[9]:"https://..." [10]:undefined[11]:"https://..."[12]:"位置名称"[13]:"https:/..."

我的循环目标是检查 [i],如果 [i] 不是未定义,则检查 [i+1] 以查看它是否包含“http”,如果两个条件都为真 > 使用从数组中获取源,并将名称和标题设置为位置名称。

在当前的迭代中,它似乎无法正常工作,它只是迭代并构建 div,而不管名称是否未定义。

任何帮助将不胜感激。

【问题讨论】:

  • i+1 会在last-iteration 中造成麻烦..
  • 你能分享以下 - 数组,输入,输出的结构吗?

标签: javascript jquery arrays loops


【解决方案1】:

您实际上是在检查 Albums[i] 的内容是否等于未定义的字符串。 您应该检查 Albums[i] 的内容是否未定义。 您还应该使用===/!== 运算符。如果要检查变量是否为空,则应检查 albums[i] === nullalbums[i] !== null

albums[i] != "undefined" => albums[i] !== undefined

这是你的 for 循环:

for (var i = 0; i < albums.length; i++){
    if ((albums[i] !== undefined) && (albums[i+1].indexOf("http") !== 1)){
        $("#thumbnail").css("overflow:", "auto");
        $("#thumbnail").css("max-height:", "100px");
        $("#thumbview").append('<div id="thumbnail"><img src=' + [i+1] + ' id="coverPhoto" height="320" width="420"></a></div>');
    };
};

【讨论】:

  • 国际海事组织,albums[i] !== "undefined"
  • @Jean-Paul_Goodwin,还有双倍递增吗? for (var i=0; i&lt;albums.length; i++){i++; 或者这不重要吗?
  • @Roy_Dorsthorst 是的,我刚刚删除了它。代码会更好,不会跳过一个 div
  • @Rayon 是的,事实上,您应该始终使用三个等于运算符。我刚刚编辑了答案。
猜你喜欢
  • 2020-02-19
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多