我在<ul>
s中有3层嵌套菜单,例如:
<div id="menu">
<ul>
<li><a href="somewhere.html">enu Item</a>
<ul>
<li><a href="somewhere.html">Menu Item 2</a>
<ul>
<li><a href="somewhere.html">Menu Item 3</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
我想使用Jquery将第一级ul
s的href属性替换为#,但保留第二个和第三个a标记上的href属性。
我已经创建了这个脚本,它适用于第二级ul
,但不适用于第三级。
$("#menu ul li a").not("#ctamenu ul li ul a").attr("href", "#");
我已经尝试过了:
$("#menu ul li a").not("#menu ul li ul a").not("#menu ul li ul li a").attr("href", "#")
但这不起作用-第三层仍然有href='#'
有没有办法做一个“双非”语句?
发布于 2013-02-18 10:16:19
第三层嵌套在您缺少的另一个ul
中,但是使用子选择器会更容易:
#menu > ul > li > a
发布于 2013-02-18 10:51:22
根据您的情况,您可能会发现在第一级锚标记上创建add class="first-level"
很有帮助。然后您可以使用$('.first-level')
,它更易于维护,因为您的菜单逻辑变得更加依赖于级别。
https://stackoverflow.com/questions/14928512
复制相似问题