在div中加载大量的txt文件

时间:2012-12-17 17:25:49

标签: jquery html

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

我试过这样做:

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

但是它与图像一起用于创建图库,但不能用.txt ...

我的目的是做一些博客,我只能将.txt文件放在一个目录中,然后自动加载到我的HTML中。

4 个答案:

答案 0 :(得分:1)

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

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


啊,错过了一些东西...... It looks like you are trying加载多个文件......在这种情况下,我再次建议在服务器上创建一些魔法。类似于一个PHP脚本,glob('*.txt')所有文件和fread()在一个循环中创建长文本...

答案 1 :(得分: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之前加载.txt。 2.txt的加载速度可能快于1.txt,而2.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

答案 2 :(得分:0)

我假设你对php知之甚少,但它应该很简单。

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

    <?php 
        for($i=0;$i<9;$i++)
        {
            echo file_get_contents($i.".txt");
        } 
    ?>
    
  4. 这应该在任何典型的托管服务上运行,或者如果自助服务,请确保您的服务器启用了PHP。

答案 3 :(得分: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>