当前位置:首页 > 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:另一个流行的树形插件,支持懒加载和多种主题。

    <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 动态加载树节点:

$('#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插件库推荐 jQuery插件库提供了丰富的扩展功能,帮助开发者快速实现常见的前端交互效果。以下是一些常用的jQuery插件库和资源: 1. 官方jQuery插件注册中心jQuery P…

锋利的jquery

锋利的jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。其核心特点是“写得更少,做得更多”,适合快速开发动态网…

jquery 图片

jquery 图片

jQuery 图片操作 jQuery 提供了多种方法来操作图片,包括加载、显示、隐藏、调整尺寸等。以下是一些常见的图片操作方法: 动态加载图片 使用 attr() 方法可以动态修改图片的 src 属…

jquery div

jquery div

jQuery 操作 div 元素 jQuery 提供了多种方法来操作 div 元素,包括选择、修改内容、样式调整、事件绑定等。以下是常见操作的示例: 选择 div 元素 通过 ID 选择 div:…

jquery实现

jquery实现

以下是关于jQuery实现的常见应用场景及方法,分为核心功能模块说明: DOM操作 使用$()选择器获取元素后,可通过链式调用方法操作DOM: $('#element').html('新内容'…

jquery判断

jquery判断

jQuery 判断元素存在与属性方法 使用 jQuery 判断元素是否存在可通过检查选择器返回的 jQuery 对象长度: if ($('#elementId').length > 0) {…