查找ul's的嵌套顺序并添加特定的类
Find nested order of ul's and add specific classes
我想找出一种方法来循环通过这样的容器
<nav id="container">
<ul>
<li>Text</li>
<li>
<ul>
<li>Text</li>
<li>
<ul>
<!-- And so on -->
</ul>
</li>
</ul>
<li>
</ul>
</nav>
并检查ul嵌套的深度,如果是第一个,则添加class="level-1"
,如果是第二个,则添加.level-2
等。请记住,每个<ul>
可以包含多个嵌套的ul(多级导航)。
DEMO
简单地迭代通过ul
s和创建一个类名基于多少父ul
s每个,使用parentsUntil()的情况下,#container
是在一个ul
。
$(function(){
$('#container ul').each(function(){
var classname = 'level-' + ($(this).parentsUntil('#container', 'ul').length + 1);
$(this).addClass(classname);
});
});
更简短的写法是
(由Arun p Johny提供)$('#container ul').addClass(function(){
return 'level-' + ($(this).parentsUntil('#container', 'ul').length + 1);
});
您最初包含了CSS标记。如果这纯粹是为了CSS,你可以直接使用CSS。见http://jsfiddle.net/a9jrd8sn/4/
相关文章:
- 按顺序添加和删除类
- 如何定义组件添加到DataItem的顺序
- 如何在 JavaScript 中以递增顺序在对象中添加属性
- 使用appendChild()动态添加的脚本是按顺序执行还是并行执行
- 由 JavaScript 控制的 CSS3 单向转换在按顺序添加/删除类时不起作用
- 如何将.append()创建的元素顺序添加到先前添加的元素中
- 我如何向这个脚本添加一个点击按钮循环URL函数(按给定顺序在URL之间切换),或者这可能吗
- 为什么setTimeout输出不按顺序添加的数字
- 在不使用200行var的情况下,在结果字段中添加顺序命名的变量?[PDF表格]
- 如何按顺序将类添加到元素集合
- 如何在 php 中存储添加输入的顺序
- 如何在不按 DOM 顺序排序的情况下将 jquery 选择添加到一起
- 迭代 JavaScript 集合并添加排序顺序
- 我可以't在javascript中添加两个变量.如果我更改要添加的变量的顺序,它要么忽略第二个变量,要么连接
- 按顺序将类添加到项目列表中
- 在函数排序列表中添加:选项排序列表中的初始顺序
- ThreeJS-按不同顺序添加对象会影响alpha/显示
- Fabric.js添加图像顺序
- 从multiupload字段中按添加顺序获取图像
- 使用延迟动态添加顺序操作