$('ul > li > a').attr('class');
我的公司所有部门都有很大的菜单。列表中有33-34项。除3个左右以外的每个部门都有一个子部门,每个子部门的许多项目都有一个子部门。现在我是这里唯一的程序员,我的老板想要一个非程序员可以在菜单中添加/删除项目的解决方案。由于ecommerece平台的限制,我们使用(easystore创建者,不,我不会推荐给任何人)我不能使用数据库或任何服务器端语言。所以我使用的XML文件包含所有部门,子部门和三级部门。然后,我使用$.ajax()
方法加载xml文件并将XML数据解析到菜单中。
我很好,直到我到达必须构建三级菜单的部分。我有一个包含true / false的数组,如果给定的子菜单在某处有一个三级菜单。数组中bool的位置加1对应子菜单。因此,如果flag[0] = false
,则表示子菜单1没有第三级菜单。
我继续向子菜单中的每个项目添加一个带有类level3
的无序列表,如果它在某处有三级菜单的话。在XML文件中,包含三级信息的节点称为<levelThreeItem>
,并且具有属性for
,该属性告诉三级菜单进入子菜单中的哪个项目。 for
属性的格式为deptXX.YY
,其中XX是它所属的子菜单,YY是它所属的子菜单中的项目。因此,如果dept05.02
表示子菜单05,项目02(项目从00开始计数)。
这就是课堂上的磨损。第一个子菜单中的每个链接,或者我称之为levelTwo,都有一个类levelTwoLinkXX
,其中XX是链接的顺序。防爆。如果子菜单中有4个链接,则第一个链接为levelTwoLink00
,最后一个链接为leveTwoLink03
。现在我要做的是只有当它有三级菜单时才用一级菜单的类填充一个数组。到目前为止,我唯一能够完成的工作就是将每个级别的所有类从每个级别的菜单加载到数组中。
我希望我已经解释了一切。如果有什么我需要清理的,请告诉我;并提前感谢
编辑: html结构:
<div id="leftNav">
<ul class="level1">
<li><a href="#">Dept 1</a>
<ul class="level2">
<li class="deptName"><a href="#">Dept 1</a></li>
<li><a href="#" class="levelTwoLink00">Dept1.1</a>
<ul class="level3"></ul>
</li>
<li><a href="#" class="levelTwoLink01">Dept1.2</a>
<ul class="level3"></ul>
</li>
</ul>
</li>
</ul>
</div>
假设levelTwoLink01具有三级菜单而levelTwoLink00没有。我需要从该列表项中删除level3 ul
答案 0 :(得分:0)
也许是这样的......
var level2sWithLevel3s = [];
$('.level3').each(function() {
level2sWithLevel3s.push($(this).prev().attr('class'));
});