在jquery中获取
  • 的层次位置

2024-03-24

我试图使用 jquery 获取 li 的嵌套深度,然后创建一个包含 li 和数字的字符串,了解它们的嵌套深度。例如:

<ul>
    <li>
    MenuItem1
    </li>

    <li>
    MenuItem2
        <ul>
            <li>
            SubItemA
            </li>
        </ul>
    </li>

    <li>
    MenuItem3
    </li>
</ul>

应该产生"0:MenuItem1 0:MenuItem2 1:SubItemA 0:MenuItem3"或者至少是类似的东西。任何想法将不胜感激。


就像是:

var text = $('li').map(function() {
     var num_parents = $(this).parents('ul').length;
     // or .parentsUntil('#someId', 'ul') if you have `$('#someID li')` above
     return (num_parents - 1) + ': ' + $(this).contents().map(function() {
         if(this.nodeType === 3) {
             return $.trim(this.nodeValue);
         }
         return null;
     }).get().join('');
}).get().join(' ');

DEMO http://jsfiddle.net/3cXJ8/

根据您的实际 HTML 结构,您还可以简化检索文本的过程li元素到

return (num_parents - 1) + ': ' + $.trim(this.firstChild);

如果文本直接跟在开头后面<li> tag.

或者如果每个标签内还有其他标签li元素(如span or div)并且您也想获取它们的内容,您可以克隆当前节点并删除所有ul后人:

var text = $.trim($(this).clone().find('ul').remove().end().text());
return (num_parents - 1) + ': ' + text;

参考: map http://api.jquery.com/map/, parents http://api.jquery.com/parents, parentsUntil http://api.jquery.com/parentsUntil/, contents http://api.jquery.com/contents/, get http://api.jquery.com/get/

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

在jquery中获取
  • 的层次位置 的相关文章

随机推荐

  • 用于填充电子表格列的一维数组

    我正在使用内置的组服务来提取用户名列表 function getUsersInGroup group var usersInGroup GroupsApp getGroupByEmail group getUsers return user
  • throw 和 $pscmdlet.ThrowTerminateerror() 之间的区别?

    在 PowerShell 中 有什么区别throw ErrorMsg and PScmdlet ThrowTerminatingError ErrorMsg 它们是相同还是不同 如果它们不同 哪一个更可取 Throw创建一个script 终
  • R install_github:错误:无法安装“未知包”[重复]

    这个问题在这里已经有答案了 我是 GitHub 的新手 我很困惑 我无法得到install github上班 我按照此处的有用说明设置了我的帐户 https kbroman org github tutorial pages init ht
  • 应如何管理函数范围内声明的计时器的清理?

    在下面的代码中 一个Timer在函数内部声明 它也订阅了Elapsed event void StartTimer System Timers Timer timer new System Timers Timer 1000 timer E
  • 将 CGrect 值更改为用户坐标系

    我有一个CGRect 我可以将其坐标转移到用户坐标系中 即左下角到顶部而不是左上角到底部 是否有任何预定义的方法或者我需要手动计算 提前致谢 要将矩形从原点位于左下角的坐标系 我们将其称为传统坐标系来命名 转换为原点位于左上角的系统 iPh
  • 如何使用 docker 将 django cookiecutter 项目上传并部署到heroku?

    我正在使用 django cookiecutter 带有 docker 和 heroku 设置 开发一个应用程序 并且已经部署它 这是我的第一个项目 所以之前没有 django docker 或 heroku 的经验 我已经在 cookie
  • 如何在 WHERE 子句中编写带有 SELECT 语句的 SQL DELETE 语句?

    数据库 Sybase Advantage 11 在我寻求标准化数据时 我试图删除从中得到的结果SELECT陈述 SELECT tableA entitynum FROM tableA q INNER JOIN tableB u on u q
  • 异步等待获取未定义。如何处理?

    我目前正在学习async await fetch我创建了以下示例来帮助我学习 下面的工作示例 从公共 API 获取三个随机 json 记录 提取出url从每次返回json 创建三个img元素 追加三img文档正文的元素 请注意promise
  • 将 RGBA 图像转换为灰度 Golang

    我目前正在开发一个将 RGBA 图像转换为灰度的程序 我之前问了一个问题 并得到了以下答案 更改单个像素的颜色 Golang 图像 https stackoverflow com questions 36573413 change colo
  • Array.length = 0 和 Array =[] 之间的区别?

    有人可以解释一下它们两者之间的概念差异吗 在某处读到第二个通过销毁对现有数组的所有引用来创建一个新数组 而 length 0 只是清空数组 但这对我来说不起作用 Declaration var arr new Array 下面是一次又一次执
  • 如何快速清除简单类型的记录?

    我有一个这样定义的结构 const MaxSignalRecords 255 type TSignalRecord record signal1 integer signal2 integer signal3 integer signal4
  • Inno Setup - 允许用户选择“只有我”或“任何使用这台计算机的人”

    我遇到的一些安装程序让我选择 只为我 或 为 使用这台计算机的任何人 安装应用程序 如何让我的 Inno Setup 脚本向用户提供此选择 以便我可以根据他们的回答方式更改安装程序的操作 有很多方法可以解释 只有我 与 所有用户 问题的答案
  • 在 Woocommerce 产品类别小部件中显示子类别档案

    我正在使用 Woocommerce 建立一家商店并使用 WooCommerce 产品类别小部件 我已经设置了许多产品类别和子类别 其中一个类别是 海报 并有几个子类别 例如 星座 旅行 自然 默认情况下 Woocommerce 仅显示父类别
  • 在 avro 文件中存储空值

    我有一些 json 数据 如下所示 id 1998983092 name Test Name 1 type search string creationDate 2017 06 06T13 49 15 091 0000 lastModifi
  • 如何在nuget和项目引用之间有效切换?

    我正在开发一个私有测试工具 它分为一个核心库和几个扩展插件 扩展项目通过私有 MyGet feed 依赖于核心库 因此我只需单击打包并上传到 MyGet feed 即可 无需太多麻烦 我遇到的问题是 除非我发布核心 NuGet 包的全新版本
  • 检测 SSL 浏览器支持

    如何检测客户端浏览器是否支持 SSL 我不是指 到服务器变量 HTTP 我希望能够确定 如果浏览器不支持 SSL 附 我知道这是可能的 因为这家公司 http www cyscape com http www cyscape com 有一款
  • AutoMapper:如何从字符串中解析 Int 并可以根据数据类型创建规则?

    我的表单有两个模型 一个是指向它的 ViewModel 另一个是来自它的 ControlModel ControlModel 具有所有相同的字段名称和层次结构 但所有字段都是字符串数据类型 如何编写 AutoMapper 代码以将字符串字段
  • 如何为特定类编写hashCode方法?

    我正在尝试为我的简单类生成 hashCode 方法 但我没有得到任何结果 我将不胜感激任何帮助 我已经实现了 equals 方法 如下所示 并且还想知道是否需要实现compareTo 方法 我已经导入 java lang Character
  • stringstream.read() 是否消耗流?

    我无法从文档中看出如何std stringstream read 作品 它是否消耗流 换句话说 std stringstream ss char buffer 6 ss lt lt Hello world ss read buffer 6
  • 在jquery中获取

    我试图使用 jquery 获取 li 的嵌套深度 然后创建一个包含 li 和数字的字符串 了解它们的嵌套深度 例如 ul li MenuItem1 li li MenuItem2 ul li SubItemA li ul li li Men