循环发布ajax结果,直到它们全部发布

时间:2017-12-04 04:29:06

标签: javascript jquery ajax

以下代码非常适合在我的第一个文件中显示

$.ajax({
    url : "http://localhost/website/files/userstuff/files/",
    asynch : false,
    cache : false,
    success: function (data) {
        $(data).find("a").each(function(i, el) {
            var val = $(el).attr('href');
            if (val.match(/\.(pdf|doc|docx|txt|html|js|css|rar|7zip)$/)) {
                var fileslocation = ("http://localhost/website/files/userstuff/files/" + val)
                var displayfilestable = ("<table><thead><tr><th>Files</th></tr></table>");
                var adddata = ("<tr><td><a href='"+ fileslocation +"'target='_blank'>"+ val +"</td></tr>");
                $("#filestable").html(displayfilestable)
                $("filestable, table").append(adddata);
                console.log(adddata)
            }
        });
    }
});

这个代码会像你想象的那样拉动并显示表格行中的文件,但它只对它找到的第一个文件执行此操作我想知道这里是否有人可以帮助让它显示该文件中的所有文件表格中的文件夹。提前谢谢

enter image description here

1 个答案:

答案 0 :(得分:1)

您的代码运行正常。问题是,在那个循环(每个)中你保持重新创建表。这就是为什么它只显示1个数据。根据您的代码检查我的示例。

HTML

 <div>
<a href="sad1.pdf">sad1.pdf</a><br>
<a href="sad2.pdf">sad2.pdf</a><br>
<a href="sad3.pdf">sad3.pdf</a>

<div id="filestable"></div>
</div>

JAVASCRIPT

var displayfilestable = ("<table><thead><tr><th>Files</th></tr></table>");
$("#filestable").html(displayfilestable);
$("DIV").find("a").each(function(i, el) { // this is your data
    var val = $(el).attr('href');
    if (val.match(/\.(pdf|doc|docx|txt|html|js|css|rar|7zip)$/)) {
        var fileslocation = ("http://localhost/website/files/userstuff/files/" + val)
        var adddata = ("<tr><td><a href='"+ fileslocation +"'target='_blank'>"+ val +"</td></tr>");
        $("filestable, table").append(adddata);
                console.log(adddata)
    }
 });

AND Jsfiddle:https://jsfiddle.net/synz/yrag1zpr/