1

我知道 jQuery 的 .load() 函数可以从 .txt 文件中加载一个文本,但是有办法在 div 中加载大量 .txt 文件吗?

我试过这样做:

   for (i = 1;i<9;){
      $("#slide2 .wrapper").load(+i+".txt");
      i++;
   };
});

但它可以与图像一起制作画廊,但不能与 .txt 一起使用...

我的意图是做一些类似博客的事情,我只能将 .txt 文件放在一个目录中,然后它会自动加载到我的 HTML 中。

4

4 回答 4

1

JavaScript 和(通过扩展)jQuery 是客户端 Web 技术,出于安全原因,不允许本机访问用户计算机上的本地文件。

您必须将该文本文件放在服务器上,并为.load()函数提供指向该文件的 URL。


啊,错过了一些东西...看起来您正在尝试加载多个文件...在这种情况下,我再次建议在服务器上创建一些魔法。类似于一个 PHP 脚本,它将glob('*.txt')所有文件和fread()它们在一个循环中创建长文本流......

于 2012-12-17T17:29:24.077 回答
1

尝试这样的事情:

for (i = 1;i<9;){
      $.get(+i+".txt", 
            function(res){
               $("#slide2 .wrapper").text($("#slide2 .wrapper").text() + res);//I expect here that you have a plain text in .txt files and want to see it like a text 
           });
      i++;
};

这应该加载所有文件并将它们附加到$("#slide2 .wrapper")内容中。

如果.load您将仅获得最后加载的文件,因为该功能只是将内容替换为$("#slide2 .wrapper")正在加载的文件的内容。请注意,不保证 1.txt 将在 2.txt 之前加载。2.txt 可能会比 1.txt 加载得更快,并且 1.txt 的内容将显示在 2.txt 的内容之后。

如果要保留订单,可以使用如下代码:

   getContent(1);// instead of for loop
});

function getContent(i) {
    $.get(+i+".txt",    
        function(res) {
           $("#slide2 .wrapper").text($("#slide2 .wrapper").text() + res);//I expect here that you have a plain text in .txt files and want to see it like a text          
           if(i < 9)
               getContent(i++);
        }
    );  
}

供参考:jQuery.get.load

于 2012-12-17T17:45:40.010 回答
0
$(function () {
    for (var i = 1; i < 9; i++) {
        $.ajax({
            url : i + ".txt",
            dataType: "text",
            success : function (data) {
                $("#slide2.wrapper").append(data);
            }
        });
    }
});

你的html应该是:

<div id="slide2" class="wrapper"></div>
于 2012-12-17T18:22:01.280 回答
0

我假设你对 php 不太了解,但它应该很简单。

  1. 创建一个新文件,但将其命名为 SomeFile.php。
  2. 完全按照您在 html 文件中的方式复制所有 html 脚本,但删除 jQuery 以尝试加载文件的内容。
  3. 将其直接插入您希望它显示的代码中,例如在<div>

    <?php 
        for($i=0;$i<9;$i++)
        {
            echo file_get_contents($i.".txt");
        } 
    ?>
    

这应该在任何典型的托管服务上运行,或者如果自助服务确保您的服务器启用了 php。

于 2012-12-17T18:12:36.403 回答