发布
社区首页 >问答首页 >Jquery:如何创建双.not()语句?

Jquery:如何创建双.not()语句?
EN

Stack Overflow用户
提问于 2013-02-18 10:13:30
回答 2查看 122关注 0票数 3

我在<ul>s中有3层嵌套菜单,例如:

代码语言:javascript
代码运行次数:0
复制
<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将第一级uls的href属性替换为#,但保留第二个和第三个a标记上的href属性。

我已经创建了这个脚本,它适用于第二级ul,但不适用于第三级。

代码语言:javascript
代码运行次数:0
复制
$("#menu ul li a").not("#ctamenu ul li ul a").attr("href", "#");

我已经尝试过了:

代码语言:javascript
代码运行次数:0
复制
$("#menu ul li a").not("#menu ul li ul a").not("#menu ul li ul li a").attr("href", "#")

但这不起作用-第三层仍然有href='#'

有没有办法做一个“双非”语句?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-18 10:16:19

第三层嵌套在您缺少的另一个ul中,但是使用子选择器会更容易:

代码语言:javascript
代码运行次数:0
复制
#menu > ul > li > a
票数 6
EN

Stack Overflow用户

发布于 2013-02-18 10:51:22

根据您的情况,您可能会发现在第一级锚标记上创建add class="first-level"很有帮助。然后您可以使用$('.first-level'),它更易于维护,因为您的菜单逻辑变得更加依赖于级别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14928512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档