如何将 HTML ul-li 结构保存到 javascript 对象中

2024-02-23

我有以下使用 ul 和 li 的 html 结构。

<ul class="treeview" id="productTree">
   <li class="collapsable lastCollapsable">
     <div class="hitarea collapsable-hitarea lastCollapsable-hitarea"></div>
     <span id="top1" class="">top1</span>
     <ul>
       <li class="collapsable lastCollapsable">
         <span class="">mod1</span>
         <ul>
           <li class="last">
              <span>bottom1</span>
           </li>
         </ul>
       </li>
     </ul>
   </li>
   <li class="collapsable lastCollapsable">
     <span id="top2" class="">top2</span>
     <ul>
       <li class="collapsable lastCollapsable">
         <span class="">mid2</span>
           <ul>
             <li class="last">
                <span>bottom2</span>
             </li>
           </ul>
        </li>
      </ul>
    </li>
</ul>

该网站允许用户在此结构下添加更多数据,并使用 jquery treeview 动态显示树结构。 现在我需要将整个 ul-li 结构保存到一个 js 对象中以供将来在网站中使用。我该如何实现这一目标?如果有帮助的话,最后一个节点(“这里是bottom1和bottom2”)有一个“last”类。 因为我们可以动态添加数据,所以当用户单击“保存”时,我们可以确定最后有多少级 ul li


可以使用递归函数来保存树对象;

function save(obj_ul, tree){

    var obj_lis = obj_ul.find("li")

    if (obj_lis.length == 0) return;        

    obj_lis.each(function(){
        var $this = $(this);
        if($this.parent("ul").get(0) == obj_ul.get(0))
        {
            tree.push({
                name : $this.find('> span').text(),
                child : save($this.find("ul").first(), [])
            });


        }
    });
    return tree;
}

console.log(save($('#productTree'), []));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 HTML ul-li 结构保存到 javascript 对象中 的相关文章

  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • 如何在react-native中获取Text组件的onPress值

    我是一名新的 React Native 开发人员 我想使用 onPress 获取 Text 组件的值并将其传递给函数
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • 如何使用 JQuery 动态排序

    如果我有一个下拉列表和一个列表框 有没有办法使用 JQuery 根据下拉列表对列表框进行排序 举个例子会很有帮助 这会改变下拉菜单中的顺序 您必须根据自己的标准设置顺序
  • 使用 JQuery 更改元素的顺序

    有人知道我做错了什么吗 我正在尝试更改某些图像的显示顺序 我希望每次按下按钮时图像都会向右 向左移动一个位置 这是我尝试过的 但没有运气 任何帮助或见解将不胜感激 rightShift click function img hide var
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • jQuery 获取元素内的鼠标位置

    我希望制作一个控件 用户可以在 div 内单击 然后拖动鼠标 然后松开鼠标以指示他们想要的内容有多长 这是针对日历控件的 因此用户将指示特定事件的时间长度 看起来最好的方法是在父 div 上注册一个 mousedown 事件 而父 div
  • 有没有办法阻止 prettier / prettier-now 将函数参数分解为新行

    当使用 prettier prettier now 在保存时进行格式化时 当一个函数包装另一个函数时 它会中断到一个新行 我想知道是否有办法阻止这种行为 例如 期望的输出 app get campgrounds id catchAsync
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • 如何在jquery中以相反的顺序迭代元素? [复制]

    这个问题在这里已经有答案了 我是jquery的新手 我想知道如何使用each 在jquery中以相反的顺序迭代表单元素 任何帮助 将不胜感激 尝试这个 input get reverse each function
  • 为什么元素上的负底部边距会降低该元素父元素的高度?

    这可能是由于边距折叠造成的 我知道边距折叠 至少知道它如何影响相邻元素 但我不明白当涉及负边距时它如何在嵌套元素上工作 例如 在此标记和随附的 CSS 中 Markup div class parent div class child Ch
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • Schema.org 的常见问题解答页面

    我有一个常见问题解答页面 我想用更好的 html 架构来实现它
  • jQuery 对象相等

    如何确定两个 jQuery 对象是否相等 我希望能够在数组中搜索特定的 jQuery 对象 inArray jqobj my array 1 alert deviceTypeRoot deviceTypeRoot False alert d
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • 基于适用于所有派生策略的基本策略获取模板类专业化

    我有一些源自基本策略的策略 某些类专门用于派生策略 而其他类仅专门用于基本策略并且可以与所有派生策略一起使用 我遇到的问题是代码重复太多 主要是类本身的构造函数和一些样板代码 下面的代码可以更好地解释我的意思 struct BasePoli
  • 在整个 ios 应用程序中共享字符串和变量

    我正在为班级的最终项目制作一个应用程序 我需要在应用程序的不同视图中共享字符串 整数和浮点数 我必须创建一个供服务员在工作中使用的应用程序 我需要针对不同类型的订购商品 饮料 开胃菜 主菜等 使用不同的视图 并且需要将所选的商品 价格和数量
  • Python:多处理和 c_char_p 数组

    我正在启动 3 个进程 我希望它们将一个字符串放入共享数组中 在对应于过程 i 的索引处 看下面的代码 生成的输出是 test 0 None None test 1 test 1 None test 2 test 2 test 2 为什么
  • 从 Windows git bash 打开 Sublime Text

    如何在 Windows 中从 Git Bash 打开 Sublime text 我尝试在 bashrc 文件中添加别名 但没有任何效果 我一直在寻找一些非常简单的东西 但在互联网上找不到 我要回答我自己的问题 首先 我创建了一个 bash
  • SQL 其中任何列等于一个值

    MySQL 是否可以选择任意列包含指定值的所有行 我正在尝试编写一个通用搜索函数 该函数可以在没有任何有关表模式的信息的情况下工作 Use SHOW COLUMNS http dev mysql com doc refman 5 0 en
  • 当列名是整数时,按列号索引 pandas DataFrame

    我试图只保留 DataFrame 的某些列 当列名是字符串时它工作正常 In 2 import numpy as np In 3 import pandas as pd In 4 a np arange 35 reshape 5 7 In
  • 在 Jcreator 中添加 jar

    我想通过在 jcreator 编辑器中编写 java 代码来读取 doc 文件 为此 我想使用 Apache POI jar 文件 但我不知道如何在 Jcreator 编辑器中添加 jar 文件 我的文件结构是这样的 现在我指的是使用这段代
  • 如何更改android活动中标题栏的颜色? [复制]

    这个问题在这里已经有答案了 可能的重复 设置标题背景颜色 https stackoverflow com questions 2251714 set title background color 如何更改 Android 应用程序中的标题栏
  • repo.spring.io 端点遇到间歇性问题

    从今天 12 00 CST 左右开始 我开始看到尝试从中提取 Maven 工件的间歇性问题https repo spring io https repo spring io 它显示为 403 禁止 但当从浏览器访问 URL 时 您可以看到
  • Magento 自定义订单属性/字段?搬起石头砸自己的脚? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在使用超过 4 个域的单个目录构建 Magento 商店 1 个用于美国 3 个用于欧洲 英国 法国和德国 欧洲有 1 个履行仓库 美国有
  • Spring启动JSP错误:NoClassDefFoundError

    每次我尝试运行使用 JSP 配置的 Spring Boot 应用程序时 都会收到此错误 java lang NoClassDefFoundError javax servlet ServletContext at java lang Cla
  • 使用 Rails 5 进行引导

    我正在尝试将 bootstrap 添加到我的新 Rails 5 应用程序中 我已经按照此处说明 https github com twbs bootstrap rubygem a ruby on rails无济于事 该页面未加载引导样式 知
  • 使用 Ansible 启用 Apache 站点

    我正在从 python 脚本运行剧本 我正在关注这段代码 https docs ansible com ansible latest dev guide developing api html 以下命令完美运行 ansible i path
  • 执行 Chrome 扩展 onclick 而不是页面加载

    我创建了一个 Chrome 扩展程序 它按预期工作 只是它仅在我加载与清单中的条件匹配的页面时执行 我已经尝试了几个小时 通过单击扩展图标来使其执行 但无济于事 我最接近我想要的就是我能够单击扩展图标来运行代码 但随后它不会在加载的页面上运
  • 如何使用redis存储分层数据?

    我有一组分层数据要存储 层次结构就像站点 建筑物 楼层 数据例如 site New York buildings name building a floors Ground room room1 room room2 First room
  • Rails ActionController::BadRequest 在生产服务器上导致 500 服务器错误

    我们有一个土耳其网站 一些旧链接被一些搜索引擎抓取 这些链接似乎格式错误或无法处理 因此导致ActionController BadRequest错误 在本地机器上development env这会导致返回 Rails 错误页面Action
  • ARM交叉编译时如何选择要链接的静态库?

    我在 Ubuntu 中有一个 ARM 交叉编译器 arm linux gnueabi gcc 默认架构是 ARMv7 但是 我想编译 ARMv5 二进制文件 我通过给编译器提供以下内容来做到这一点 march armv5te option
  • 为什么 swift 编译器有时不接受速记参数名称?

    该数组是 var closestAnnotations MKAnnotation 我想知道为什么 swift 编译器不接受 let closestStationAnnotations closestAnnotations filter 0
  • 每次创建新小部件时都会发出“在小部件构造函数中使用密钥”警告

    每次创建新课程时 我都会收到警告 在小部件构造函数中使用 key 更喜欢 const 和常量构造函数 等等 这些错误从何而来以及如何消除它 解决方案一 如果您不想忽略警告 只需执行super key FooPage super key 解决
  • 如何将 HTML ul-li 结构保存到 javascript 对象中

    我有以下使用 ul 和 li 的 html 结构 ul class treeview li class collapsable lastCollapsable div class hitarea collapsable hitarea la