当前位置:首页 > jquery

jquery 树形

2026-02-03 09:37:38jquery

jQuery 树形结构实现方法

jQuery 树形结构通常用于展示层级数据,如文件目录、组织架构等。以下是几种常见的实现方式:

使用 jQuery 插件

  • jstree:功能强大的树形插件,支持拖放、复选框、搜索等功能。

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>
    <div id="tree"></div>
    <script>
      $('#tree').jstree({
        'core': {
          'data': [
            { "text": "Node 1", "children": [
              { "text": "Child 1" },
              { "text": "Child 2" }
            ]}
          ]
        }
      });
    </script>
  • fancytree:另一个流行的树形插件,支持懒加载和多种主题。

    jquery 树形

    <link href="https://cdnjs.cloudflare.com/ajax/libs/jquery.fancytree/2.38.0/skin-win8/ui.fancytree.min.css" rel="stylesheet">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.fancytree/2.38.0/jquery.fancytree-all.min.js"></script>
    <div id="tree"></div>
    <script>
      $("#tree").fancytree({
        source: [
          {title: "Node 1", folder: true, children: [
            {title: "Child 1"},
            {title: "Child 2"}
          ]}
        ]
      });
    </script>

手动实现简单树形结构 对于简单需求,可以不依赖插件:

<ul class="tree">
  <li>Parent
    <ul>
      <li>Child 1</li>
      <li>Child 2</li>
    </ul>
  </li>
</ul>
<style>
  .tree ul { display: none; }
  .tree li { cursor: pointer; }
</style>
<script>
  $('.tree li').click(function(e) {
    e.stopPropagation();
    $(this).children('ul').toggle();
  });
</script>

动态加载数据 通过 AJAX 动态加载树节点:

jquery 树形

$('#tree').on('click', '.load-more', function() {
  var node = $(this).closest('li');
  $.get('/api/children', {parent: node.data('id')}, function(data) {
    node.append('<ul>' + data.map(item => 
      `<li data-id="${item.id}">${item.name}</li>`
    ).join('') + '</ul>');
  });
});

树形结构功能扩展

添加复选框

$('#tree').jstree({
  'plugins': ['checkbox'],
  'core': { 'data': [...] }
});

支持拖拽排序

$('#tree').jstree({
  'plugins': ['dnd'],
  'core': { 'data': [...] }
});

搜索功能

$('#search').keyup(function() {
  $('#tree').jstree('search', $(this).val());
});

性能优化建议

  • 对于大型数据集,使用懒加载技术
  • 避免频繁的 DOM 操作,使用文档片段批量插入
  • 考虑使用虚拟滚动技术处理超长列表

以上方法可以根据具体需求选择适合的方案,插件方式适合复杂功能,手动实现适合简单场景。

标签: jquery
分享给朋友:

相关文章

jquery官网

jquery官网

jQuery 官网地址 jQuery 的官方网站是 https://jquery.com/。该网站提供以下核心内容: 下载 jQuery:提供最新版本的 jQuery 库(压缩版和未压缩版),支…

jquery库

jquery库

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

jquery标签

jquery标签

jQuery 标签操作 jQuery 提供了多种方法来操作 HTML 标签(元素),包括创建、修改、删除和遍历等。以下是常用的 jQuery 标签操作方法: 选择标签 使用选择器获取 HTML 元素…

jquery数组

jquery数组

jQuery 数组操作 jQuery 提供了多种方法来操作数组或类数组对象(如 jQuery 对象集合)。以下是常见的数组操作方法: 遍历数组 使用 $.each() 方法可以遍历数组或对象: v…

jquery 效果

jquery 效果

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。jQuery 提供了丰富的效果(Effects)功能,可以轻松实现元素的动态显…

jquery 菜单

jquery 菜单

jQuery 菜单实现方法 使用 jQuery 创建动态菜单可以通过多种方式实现,以下是几种常见的方法: 基于 HTML 和 CSS 的基础结构 创建菜单的 HTML 结构通常使用无序列表 <…