首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何处理ajax成功数据的第一个值与其他值不同

如何处理ajax成功数据的第一个值与其他值不同
EN

Stack Overflow用户
提问于 2016-01-27 01:39:18
回答 2查看 111关注 0票数 0

考虑以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'use strict';
$.getJSON('/img/content/galleries/', function(directories) {
    $("#gallery").text("");
    for (var dirnum = 2; dirnum < directories.length - 1; dirnum++) {
        (function(dirnum) {
            var folder = '/img/content/galleries/' + directories[dirnum] + '/';
            $.ajax({
                url: folder,
                success: function(data) {
                        $(data).find("a").attr("href", function(i, val) {
                            if (val.match(/\.jpg|\.png|\.gif/)) {
                                $("#gallery").append('<a class="fancybox-thumb" href="' + folder + val + '" rel="fancybox-thumb"><div class="gallerypictures" style="background-image:url(' + folder + val + ')"></div></a>');
                            } // end val.match
                        }); // end data.find
                    } // end success
            }); // end ajax
        })(dirnum); // end closure
    } // end for loop
}); // end getJSON

它所做的只是检索"galleries“文件夹的子目录,然后通过ajax调用获取文件名,并将每个子目录(例如gallery1和gallery2 )的内容按字母顺序输出到#gallery div。

这段代码按原样运行良好,并正确输出所有文件。下面是我所遗漏的:

我希望每个子目录以不同于其他子目录的方式处理第一个图像(我只想为每个子目录的第一个图像添加一个类)。

我是ajax行业的新手,所以我对如何过滤每个子目录的第一个图像感到有点困惑。或者,也许有一种更简单的方式来思考这一点?

提前感谢!

埃里克·P。

EN

回答 2

Stack Overflow用户

发布于 2016-01-27 01:45:54

在find函数的回调中使用if语句,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(data).find("a").attr("href", function(i, val) {
  if(i === 0){
     // whatever you want to do to first element in here

   } // end val.match
});
票数 0
EN

Stack Overflow用户

发布于 2016-01-27 02:08:49

尝试在for循环中添加变量i,将i传递给IIFE,使用if条件检查i是否等于0

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for (var dirnum = 2, i = 0; dirnum < directories.length - 1; dirnum++, i++) {
    (function(dirnum, i) {
        var folder = '/img/content/galleries/' + directories[dirnum] + '/';
        $.ajax({
            url: folder,
            success: function(data) {
                $(data).find("a").attr("href", function(_, val) {
                    if (val.match(/\.jpg|\.png|\.gif/)) {
                        if (i === 0) {
                          // do stuff
                        }
                        $("#gallery").append('<a class="fancybox-thumb" href="' + folder + val + '" rel="fancybox-thumb"><div class="gallerypictures" style="background-image:url(' + folder + val + ')"></div></a>');
                    }
                    // end val.match
                });
                // end data.find
            }// end success
        });
        // end ajax
    })(dirnum, i);
    // end closure
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35027349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文