gpt4 book ai didi

javascript - 如何使用 javascript 和 jQuery 制作列表子项?

转载 作者:搜寻专家 更新时间:2023-10-31 21:52:54 24 4
gpt4 key购买 nike

大家好,我想用一个简短的代码制作一个列表

我想从这里移动(使用 javascript 或 jQuery):

<ul id='nav'>
<li><a href='#'>Home</a></li>
<li><a href='#'>Sub-menu</a></li>
<li><a href='#'>_Sub-Menu child 1</a></li>
<li><a href='#'>_Sub-Menu child 2</a></li>
<li><a href='#'>_Sub-Menu child 3</a></li>
<li><a href='#'>__Sub-Menu child 3.1</a></li>
<li><a href='#'>__Sub-Menu child 3.2</a></li>
<li><a href='#'>__Sub-Menu child 3.3</a></li>
<li><a href='#'>Example</a></li>
</ul>

为此:

<ul id='nav'>
<li><a href='#'>Home</a></li>
<li class='hasSub1'>
<a href='#'>Sub-menu</a>
<ul class='subMenu1'>
<li><a href='#'>Sub-Menu child 1</a></li>
<li><a href='#'>Sub-Menu child 2</a></li>
<li class='hasSub2'>
<a href='#'>Sub-Menu child 3</a>
<ul class='subMenu2'>
<li><a href='#'>Sub-Menu child 3.1</a></li>
<li><a href='#'>Sub-Menu child 3.2</a></li>
<li><a href='#'>Sub-Menu child 3.3</a></li>
</ul>
</li>
</ul>
</li>
<li><a href='#'>Example</a></li>
</ul>

方法是当有人制作一个列表并使用“_”时,第二个列表位于前列表或“__”的双倍内,就像我制作的示例一样,我们也可以像这种方法一样制作一个无限列表而不是就一次。

我尝试制作脚本的第一层 _这是我做的:

<script>
$("#LinkList1").each(function() {
var e = "<ul id='nav'><li><ul id='sub-menu'>";
$("#LinkList1 li").each(function() {
var t = $(this).text(),
n = t.substr(0, 1),
r = t.substr(1);
"_" == n ? (n = $(this).find("a").attr("href"), e += '<li><a href="' + n + '" class="list-name"><span class="lint-span">' + r + "</span></a></li>") : (n = $(this).find("a").attr("href"), e += '</ul></li><li><a href="' + n + '" class="list-name"><span class="lint-span">' + t + "</span></a><ul id='sub-menu'>")
});
e += "</ul></li></ul>";
$(this).html(e);
$("#LinkList1 ul").each(function() {
var e = $(this);
if (e.html().replace(/\s|&nbsp;/g, "").length == 0) e.remove()
});
$("#LinkList1 li").each(function() {
var e = $(this);
if (e.html().replace(/\s|&nbsp;/g, "").length == 0) e.remove()
})
});$('#sub-menu').parent().addClass('hasSub');
</script>

请注意:#LinkList1 是一个 Div(所有元素的父级),只是在元素中添加了一个类和跨度,但是当我尝试制作第二级时 __(两个 _)它没有当我们都有多个列表时,'完美地为我工作

最佳答案

我为每个 <a> 创建了一个函数进入您的导航菜单列表。

请尝试以下操作:

$(document).ready(function () {
var list = $("<ul />");
$("ul#nav a").each(function(i,e){
var iter = $($(this).html().match(/\_/g)).length;
var href = $(this).attr("href");
if(iter>0){
if(list.find("ul").hasClass("subMenu"+iter)){
list.find(".subMenu" + iter).append("<li><a href='"+ href +"'>" + $(this).text().substr(iter) + "</a></li>");
}else{
list.find("li").last().append("<ul class='subMenu"+iter+"'><li><a href='"+ href +"'>" + $(this).text().substr(iter) + "</a></li></ul>").addClass("hasSub"+iter);
}
}else{
list.append("<li><a href='"+href+"'>" + $(this).text() + "</a></li>");
}
})
$("#nav").empty().append(list);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id='nav' >
<li><a href='#'>Home</a></li>
<li><a href='#'>Sub-menu</a></li>
<li><a href='#'>_Sub-Menu child 1</a></li>
<li><a href='#'>_Sub-Menu child 2</a></li>
<li><a href='#'>_Sub-Menu child 3</a></li>
<li><a href='#'>__Sub-Menu child 3.1</a></li>
<li><a href='#'>__Sub-Menu child 3.2</a></li>
<li><a href='#'>__Sub-Menu child 3.3</a></li>
<li><a href='#'>___Sub-Menu child 3.3.1</a></li>
<li><a href='#'>Example</a></li>
</ul>

关于javascript - 如何使用 javascript 和 jQuery 制作列表子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35063286/

24 4 0
文章推荐: html - 标签的任何替代方案,将 html 呈现为纯文本</a> </div> <div> 文章推荐: <a class="a-tag" href="/article/19/1239788/detail.html" target="_blank">php - 根据另一个数组键值对数组进行排序</a> </div> <div> 文章推荐: <a class="a-tag" href="/article/19/1239786/detail.html" target="_blank">php - 根据php中的一个邮政编码找到最近的邮政编码</a> </div> <div> 文章推荐: <a class="a-tag" href="/article/19/1239785/detail.html" target="_blank">javascript - 数据列表垂直滚动不适用于 chrome</a> </div> </div> <div class="content-p"> <ul class="like-article"> <li> <a class="a-tag" href="/article/23/5333979/detail.html" target="_blank">javascript - 执行存在于输入值字段中的 javascript - JavaScript</a> <p>我有一个 html 格式的表单: 我需要得到 JavaScript在value input 字段执行,但只能通过表单的 submit .原因是页面是一个模板所以我不控制它(不能有 </p> </li> <li> <a class="a-tag" href="/article/23/3817083/detail.html" target="_blank">javascript - JavaScript 代码片段正在破坏其他 JavaScript</a> <p>我管理的论坛是托管软件,因此我无法访问源代码,我只能向页面添加 JavaScript 来实现我需要完成的任务。 我正在尝试用超链接替换所有页面上某些文本关键字的第一个实例。我还根据国家/地区代码对这些</p> </li> <li> <a class="a-tag" href="/article/22/3105011/detail.html" target="_blank">javascript - JavaScript 如何使新页面包含更多 JavaScript?</a> <p>我正在使用 JS 打开新页面并将 HTML 代码写入其中,但是当我尝试使用 document.write() 在新页面中编写 JS 时功能不起作用。显然,一旦看到 ,主 JS 就会关闭。用于即将打开的</p> </li> <li> <a class="a-tag" href="/article/16/481051/detail.html" target="_blank">javascript - Javascript 引擎如何在浏览器中执行 Javascript?</a> <p>提问不是为了解决问题,提问是为了更好地理解系统 专家!我知道每当你将 javascript 代码输入 javascript 引擎时,它会立即由​​ javascript 引擎执行。由于没有看过Engi</p> </li> <li> <a class="a-tag" href="/article/23/6852406/detail.html" target="_blank">javascript - 如何将 JavaScript 变量从一个 JavaScript 文件传递​​到另一个 JavaScript 文件?</a> <p>我在一个文件夹中有两个 javascript 文件。我想将一个变量的 javascript 文件传递​​到另一个。我应该使用什么程序? 最佳答案 window.postMessage用于跨文档消息。使</p> </li> <li> <a class="a-tag" href="/article/23/7856660/detail.html" target="_blank">javascript - javascript 中的 javascript 输入问题</a> <p>我有一个练习,我需要输入两个输入并检查它们是否都等于一个。 如果是 console.log 正则 console.log false 我试过这样的事情: function isPositive(fir</p> </li> <li> <a class="a-tag" href="/article/23/7339473/detail.html" target="_blank">javascript - 在加载其他 javascript 库的页面上嵌入 Javascript?</a> <p>我正在做一个Web应用程序,计划允许其他网站(客户端)在其页面上嵌入以下javascript: 我的网络应用程序位于 http://example.org 。 我不能假设客户端网站的页面有 JQue</p> </li> <li> <a class="a-tag" href="/article/23/7214830/detail.html" target="_blank">javascript - 从 Javascript 内部调用 Javascript</a> <p>目前我正在使用三个外部 JS 文件。 我喜欢将所有三个 JS 文件合而为一。 尽一切可能。我创建 aio.js 并在 aio.js 中 src="https://code.jquery.com/</p> </li> <li> <a class="a-tag" href="/article/23/7172784/detail.html" target="_blank">javascript - AngularJS/javascript javascript 对象的特殊排序顺序</a> <p>我有例如像这样的数组: var myArray = []; var item1 = { start: '08:00', end: '09:30' } var item2 = { </p> </li> <li> <a class="a-tag" href="/article/23/7158321/detail.html" target="_blank">javascript - 在 Javascript 内部执行 Javascript?</a> <p>所以我正在制作一个 Chrome 扩展,它使用我制作的一些 TamperMonkey 脚本。我想要一个“主”javascript 文件,您可以在其中包含并执行其他脚本。我很擅长使用以下行将其他 jav</p> </li> <li> <a class="a-tag" href="/article/23/7108594/detail.html" target="_blank">javascript - 如何将变量从 javascript 移动到 javascript?</a> <p>我有 A、B html 和 A、B javascript 文件。 并且,如何将 A JavaScript 中使用的全局变量直接移动到 B JavaScript 中? 示例 JavaScript) va</p> </li> <li> <a class="a-tag" href="/article/23/6838549/detail.html" target="_blank">javascript - 从 javascript 调用 javascript</a> <p>我需要将以下整个代码放入名为 activate.js 的 JavaScript 中。你能告诉我怎么做吗? var int = new int({ seconds: 30, mark</p> </li> <li> <a class="a-tag" href="/article/23/6827028/detail.html" target="_blank">javascript - 将变量值从一个 JavaScript 传递到另一个 JavaScript</a> <p>我已经为我的 .net Web 应用程序创建了母版页 EXAMPLE1.Master。他们的 I 将值存储在 JavaScript 变量中。我想在另一个 JS 文件中检索该变量。 示例1.大师:- </p> </li> <li> <a class="a-tag" href="/article/23/6715907/detail.html" target="_blank">javascript - 有没有开源库可以在浏览器中使用 Javascript 来整理 Javascript?</a> <p>是否有任何库可以用来转换这样的代码: function () { var a = 1; } 像这样的代码: function () { var a = 1; } 在我的浏览器中。因为我在 Gi</p> </li> <li> <a class="a-tag" href="/article/23/5711949/detail.html" target="_blank">javascript - javascript 中的参数列表后缺少语法 javascript 错误 )</a> <p>我收到语法缺失 ) 错误 $(document).ready(function changeText() { var p = document.getElementById('bidp</p> </li> <li> <a class="a-tag" href="/article/23/5695006/detail.html" target="_blank">javascript - 第一个 JavaScript 完成后启动第二个 JavaScript</a> <p>我正在制作进度条。它有一个标签。我想调整某个脚本完成的标签。在找到可能的解决方案的一些答案后,我想出了以下脚本。第一个启动并按预期工作。然而,第二个却没有。它出什么问题了?代码如下: HTML: </p> </li> <li> <a class="a-tag" href="/article/23/5382327/detail.html" target="_blank">javascript - 为什么外部 javascript 库会阻止我页面上的 javascript?</a> <p>这里有一个很简单的问题,我简单的头脑无法回答:为什么我在外部库中加载时,下面的匿名和onload函数没有运行?我错过了一些非常非常基本的东西。 Library.js 只有一行:console.log(</p> </li> <li> <a class="a-tag" href="/article/23/5378734/detail.html" target="_blank">javascript - 如何区分代码内 javascript 和客户端 javascript</a> <p>我知道 javascript 是一种客户端语言,但如果实际代码中嵌入的 javascript 代码以某种方式与在控制台上运行的代码不同,我会尝试找到答案。让我用一个例子来解释它: 我想创建一个像 Mi</p> </li> <li> <a class="a-tag" href="/article/23/5368712/detail.html" target="_blank">javascript - 将 Javascript 内联到不显眼的 JavaScript?</a> <p>我如何将这个内联 javascript 更改为 Unobtrusive JavaScript? 谢谢! 感谢您的回答,但它不起作用。我的代码是: PHP js文件 document.getElem</p> </li> <li> <a class="a-tag" href="/article/23/5333800/detail.html" target="_blank">javascript - 如何将 JavaScript 对象导出为 JavaScript?</a> <p>我正在寻找将简单的 JavaScript 对象“转储”到动态生成的 JavaScript 源代码中的最优雅的方法。 目的:假设我们有 node.js 服务器生成 HTML。我们在服务器端有一个对象x。</p> </li> </ul> </div> </div> <div class="resource col-xs-3 col-sm-3 col-md-3 col-lg-3"> <div class="content-p content-p-comment"> <div class="phone-current phone-current-float"> <img alt="" src="/images/phone/manphone.jpeg"> </div> <div class="phone-current-float phone-current-style"> 搜寻专家 </div> <div class="phone-current-summary"> <span><strong>个人简介</strong></span> <p> 我是一名优秀的程序员,十分优秀! </p> </div> </div> <div class="content-p content-p-comment"> <article class="p-list"> <div class="art-margin" style="border-bottom: 1px solid #f3f0f0; padding-bottom: 5px;"> <strong>作者热门文章</strong> </div> <ul class="recomment-list-user"> <li><a class="a-tag" href="/article/19/1071999/detail.html" target="_blank">Java 双重比较</a></li> <li><a class="a-tag" href="/article/19/1071998/detail.html" target="_blank">java - 比较器与 Apache BeanComparator</a></li> <li><a class="a-tag" href="/article/19/1071997/detail.html" target="_blank">Objective-C 完成 block 导致额外的方法调用?</a></li> <li><a class="a-tag" href="/article/19/1071996/detail.html" target="_blank">database - RESTful URI 是否应该公开数据库主键?</a></li> </ul> </article> </div> <div class="content-p content-p-comment"> <article class="p-list"> <div class="art-margin" style="border-bottom: 1px solid #f3f0f0; padding-bottom: 5px;"> <strong>滴滴打车优惠券免费领取</strong> </div> <img alt="滴滴打车优惠券" src="/images/ad/didiad.png" width="210px" onclick="window.open('/ad/didi', '_blank')"> </article> </div> <div class="content-p content-p-comment"> <article class="p-list"> <div class="art-margin" style="border-bottom: 1px solid #f3f0f0; padding-bottom: 5px;"> <strong>全站热门文章</strong> </div> <ul class="recomment-list-user"> <li><a class="a-tag" href="/article/92/8826031/detail.html" target="_blank">Serilog文档翻译系列(五)-编写日志事件</a></li> <li><a class="a-tag" href="/article/92/8826030/detail.html" target="_blank">k8sStorageClass存储类</a></li> <li><a class="a-tag" href="/article/92/8826029/detail.html" target="_blank">线程状态转换?创建线程的几种方式?线程如何停止?</a></li> <li><a class="a-tag" href="/article/92/8826028/detail.html" target="_blank">小白必看!入门嵌入式你需要了解这些!</a></li> <li><a class="a-tag" href="/article/92/8826027/detail.html" target="_blank">项目实战:Qt+OSG爆破动力学仿真三维引擎测试工具v1.1.0(加载.K模型,子弹轨迹模拟动画,支持windows、linux、国产麒麟系统)</a></li> <li><a class="a-tag" href="/article/92/8826026/detail.html" target="_blank">linux操作系统和文件系统,命令(上)</a></li> <li><a class="a-tag" href="/article/92/8826025/detail.html" target="_blank">ModbusRTU通信协议报文剖析</a></li> <li><a class="a-tag" href="/article/92/8826024/detail.html" target="_blank">PasteForm最佳CRUD实践,实际案例PasteTemplate详解(一)</a></li> <li><a class="a-tag" href="/article/92/8826023/detail.html" target="_blank">SqlEs-像使用数据库一样使用Elasticsearch</a></li> <li><a class="a-tag" href="/article/92/8826022/detail.html" target="_blank">macM1,M2,M3芯片踩坑nodejsrubybrew</a></li> </ul> </article> </div> </div> </div> </div> <div class="foot-font" style="border-top: 1px solid #f3f0f0; margin: auto; padding: 15px; background-color: #474443" align="center"> <a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank"><span class="color-txt-foot">Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号</span></a> <br/> <a href="/" target="_blank"><span class="color-txt-foot">广告合作:1813099741@qq.com</span></a> <a href="http://www.6ren.com" target="_blank"><span class="color-txt-foot">6ren.com</span></a> </div> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d1cb9c185f1642d6f07e22cafa330c45"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d46c26b2162aface49b8acf6cb7025e1"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>