【问题标题】:Showing/Managing a list of files/directories in Javascript?在 Javascript 中显示/管理文件/目录列表?
【发布时间】:2011-04-25 18:09:57
【问题描述】:

我正在寻找一种使用 javascript 显示目录和文件列表的方法。我想要的结构是:

  • 目录 1

    • 文件 1
      • 路径
      • 采取的措施(删除、添加、修改)
    • 文件 2
      • 路径
      • 采取的措施(删除、添加、修改)
  • 目录 2

    • 文件 1
      • 路径
      • 采取的措施(删除、添加、修改)
    • 文件 2
      • 路径
      • 采取的措施(删除、添加、修改)
    • 子目录 1
      • 子目录文件 1
        • 路径
        • 采取的措施(删除、添加、修改)
      • 子目录文件 2
        • 路径
        • 采取的措施(删除、添加、修改)

等等。我正在寻找的是:

1) 如何遍历我拥有的所有项目。

2) 如何在树中显示它们。

3) 如何轻松获取父级所有子级的列表,用于选择/取消选择。 (例如,如果用户单击名称“目录 1”,则该目录的所有子目录(文件、子目录、子目录文件等)将选中/取消选中它们旁边的复选框。

有什么想法吗?谢谢。

【问题讨论】:

    标签: javascript jquery algorithm oop list


    【解决方案1】:

    我还没有找到一个不错的 js 树实现。

    jsTree 足够强大,可以构建您想要的功能,尽管我发现它非常不直观且难以使用和定制。有一个相当活跃的留言板可以提供帮助。作者承诺重写大约一年,posted 很快就会有提交,尽管如果你查看留言板的历史,他至少已经说过 6 个月了。

    我没有找到比 jsTree 更好的东西,我也不是很喜欢它,所以祝你好运。

    我认为 jqueryui 的树小部件是 on the wishlist,但不要屏住呼吸。 This 应该是我认为的回购协议。

    还有this。不知道它是否有什么好处,我在寻找 jqueryui 链接时才发现它。(看起来自 2009 年以来就没有提交过,那时可能不是最好的主意......)

    如果你发现好东西,请发布。

    【讨论】:

    • 我没有找到任何东西,我最终要自己写。我并不是在寻找 javascript 树对象本身,而是想知道使用哪种算法在树列表中维护它们、获取父目录中的所有文件/目录等。
    • @Click,对于内存中树的实现,您不需要知道特殊的算法 - 只要您熟悉基本的树遍历和 js 中的对象,您应该能够创建所需的节点类型,只需很少的努力和所有基本功能
    • 没错,但是这里的问题是,每个节点都可以是一个:包含该目录的子目录/文件的目录数组,也可以是一个目录对象,表示目录本身已更改,即添加或删除。也许我需要以某种方式重构它以始终使用一个对象,但这会产生如何遍历目录的文件/子目录的问题..
    • @Click,看不出问题,你有两种类型,文件和目录,它们都有一个父指针和一个动作标志。目录另外还有一个数组中的孩子。数组元素本身可以是目录或文件。当您添加/删除/更改任何元素时,您会适当地对其进行标记,并在进行时按照父指针向上标记“已修改”的根。有什么大不了的?
    • 你是对的.. 谢谢.. 很难解释我在做什么,但你的方法要简单得多,所以我会接受的。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    相关资源
    最近更新 更多