【问题标题】:Dynamically created list of files in JavaScriptJavaScript 中动态创建的文件列表
【发布时间】:2019-01-06 18:41:32
【问题描述】:

我想制作一个动态创建我拥有的文件列表的 JavaScript 代码 在我服务器上的特定文件夹中。当我按下按钮时,将显示此列表 每个对象都会有一个复选框。然后将使用另一个提交按钮下载选定的项目,我猜是一些 PHP。

到目前为止,我使用我在网上找到的 JavaScript 代码来查找文件的名称,然后调用另一个函数来创建元素,但没有运气。

function createEl(var a){
    var myDiv = document.getElementById("cboxes");
    var checkBox = document.createElement("input");
    var label = document.createElement("label");
    checkBox.type = "checkbox";
    checkBox.value = a;
    myDiv.appendChild(checkBox);
    myDiv.appendChild(label);
    label.appendChild(document.createTextNode(a));

}
function foldlist(){
const testFolder = './xampp/htdocs/website1/uploads';
const fs = require('fs');

fs.readdir(testFolder, (err, files) => {
  files.forEach(file => {
    var a=file;
    createEl(a);
  });
})}

【问题讨论】:

  • 您是否在 html 中使用 id cboxes 编写了一个空 div,您的 createEl 函数可以将创建的元素附加到其中?
  • 是的,我已经做到了
  • 我也改了document.innerHTML……以防万一

标签: javascript html list dynamic


【解决方案1】:

您正在尝试将 var JavaScript 关键字作为createEl() 函数参数的一部分传递。

只需改变这个:

function createEl(var a){
    ....
}

到这里:

function createEl(a){
    ....
}

您的功能应该可以正常工作。检查下面的代码片段,您会看到上面的函数正在创建应有的输入框:

/* JavaScript */
function createEl(a){
    var myDiv = document.getElementById("cboxes");
    var checkBox = document.createElement("input");
    var label = document.createElement("label");
    checkBox.type = "checkbox";
    checkBox.value = a;
    myDiv.appendChild(checkBox);
    myDiv.appendChild(label);
    label.appendChild(document.createTextNode(a));
}

btn.addEventListener("click", function(){ createEl("hello") });
<!-- HTML -->
<button id="btn">Create input-box</button>
<div id="cboxes"></div>

【讨论】:

  • 非常感谢我的朋友!虽然对我不起作用 :( 仍然没有显示
  • 这很奇怪。您能否在files.forEach(file =&gt; { 下方的var a=file; 下方添加此行:console.log(a),然后告诉我刷新页面后您在控制台中看到了什么。
  • Uncaught ReferenceError: foldlist is not defined
  • 哦,好的。所以现在的问题不再是 createEl() 函数了。您可以通过用一些虚拟字符串替换a 来确认它会起作用。您现在需要调试您的foldlist() 函数和与之关联的testfolder。我建议您为此发布一个新问题,将新问题的焦点切换到您在上面使用的File System 模块或fs module。干杯!!
  • 我可以给你看我在stackoverflow中找到的文章
猜你喜欢
  • 1970-01-01
  • 2018-04-14
  • 2020-01-01
  • 2015-06-15
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 2023-03-31
  • 2016-04-29
相关资源
最近更新 更多