javascript - 文本到 Html 列表

标签 javascript html

我想制作一个 html 来自动获取 *.txt 文件的信息

something1
something2
something3

并输出到这个html文件中

 <!DOCTYPE html>
    <html>
    <head>
        <title>List</title>
    </head>
    <body>
            <ul>
                #here to output#
            </ul>
    </body>
    </html>

我更喜欢使用 JavaScript。一些帮助表示赞赏。

最佳答案

您必须使用 AJAX 调用来请求文件。然后您需要遍历每一行响应并生成 DOM 元素(在本例中为 li)和其中的输入行。之后将每个 li 元素插入到您的 ul 列表中。

您可以使用 jQuery 实现它,因为您可能是 JavaScript 的新手,这可能是最简单的方法。

您需要做的是先请求文件:

$.ajax('url/to/your/file', {
    success: fileRetrieved
});

现在在检索文件后 jQuery 将调用 fileRetrieved 方法,因此我们必须创建它:

function fileRetrieved(contents) {
    var lines = contents.split('\n');
    for(var i = 0; i < lines.length; i += 1) {
        createListElement(lines[i]);
    }
}

现在,对于文件中的每一行,fileRetrieved 函数将调用 createListElement 函数,将文本行传递给它。现在我们只需要生成列表元素并将其注入(inject) DOM。

function createListElement(text) {
    var into = $('ul');
    var el = $('<li></li>').html(text);
    el.appendTo(into);
}

当然,您不想每次调用 createListElement 时都检索 into 元素,所以只需将它存储在函数之外的某个地方,这是您的决定,我只是给你大概的想法。

这是一个脚本示例(当然没有 AJAX 调用,因为我们无法模拟它):

var into = $('#result');

function fileRetrieved(contents) {
  var lines = contents.split('\n');
  for (var i = 0; i < lines.length; i += 1) {
    createListElement(lines[i]);
  }
}

function createListElement(text) {
  var el = $('<li></li>').html(text);
  el.appendTo(into);
}

var text = $('#text').html();
fileRetrieved(text);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- This element simulates file contents-->
<pre id="text">
  fdsafdsafdsa
  fdsafd
  safdsaf
  dsafdsaf
  dsafdsafds
  afdsa
</pre>

<div id="result"></div>

关于javascript - 文本到 Html 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40817894/

相关文章:

javascript - 使用 jQuery 突出显示搜索字符串

javascript - 重新排列 div 中的类然后使用 mouseleave 重置的 Jquery mouseover

php - 如何在 Twig 中使用我的 php(自定义 Controller ?)

javascript - 如何在 ReactJS 中创建动态函数名称并在 onBlur 上使用?

javascript - 如何根据另一个数组的匹配键值对返回一个数组?

javascript - 使用 php 无法将网络摄像头生成的图像上传到 mysql 数据库

javascript - 单击子元素时,如何停止触发父元素的 onclick 事件?

javascript - JS - 找到小于或等于给定界限的最大整数,它可以被某个数字整除

html - 底部边框看起来像波浪

html - 在 Bootstrap 模式中调整 Bootstrap 登录组件的大小