javascript - 仅删除父级的属性?

标签 javascript jquery

我希望删除第一个链接的 href 属性,目前它会删除所有链接的属性。

$("#menu-item-2003 a").removeAttr('href');

这是我的 html 设置:

<li id="menu-item-2003">
  <a href="#">
    <span class="menu-image-title">Products</span>
  </a>
  <ul>
    <li id="menu-item-2005">
      <a href="#">
        <img src="icon.svg">
        <span class="menu-image-title">Title</span>
      </a>
    </li>
    <li id="menu-item-2006">
      <a href="#">
        <img src="icon.svg">
        <span class="menu-image-title">Title</span>
      </a>
    </li>
  </ul>
</li>

最佳答案

如果您只想删除第一个 ahref,请使用 direct descendent选择器:

$("#menu-item-2003 > a").removeAttr('href');

您当前使用的允许选择任何级别的子级,这导致了问题。

工作演示:

$("#menu-item-2003 > a").removeAttr('href');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li id="menu-item-2003">
  <a href="#">
    <span class="menu-image-title">Products</span>
  </a>
  <ul>
    <li id="menu-item-2005">
      <a href="#">
        <img src="icon.svg">
        <span class="menu-image-title">Title</span>
      </a>
    </li>
    <li id="menu-item-2006">
      <a href="#">
        <img src="icon.svg">
        <span class="menu-image-title">Title</span>
      </a>
    </li>
  </ul>
</li>

或者,如果 a 不是直系后代,您可以使用 :first伪类来选择第一个标签:

$("#menu-item-2003 a:first").removeAttr('href');

关于javascript - 仅删除父级的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49897422/

相关文章:

javascript - .mouseup() 和 .mousedown() 不能与 .mousemove() 一起使用

javascript - 如何让 Angular 知道自定义窗口事件已被触发并且需要更新检查

javascript - 是否可以动态设置 MAILTO : with only HTML and JavaScript? 的收件人

javascript - 如何访问不同对象的属性?

javascript - JQuery closest() 帮助

jquery - 解析 JSON - 应该很简单。我缺少什么?

javascript - 将二进制对象保存到服务器上的 GridFS

javascript - 如何在节拍器计数器中手动设置/更改步骤

javascript - 嵌套可排序无法正确折叠/展开

javascript - 有没有办法创建 "inline-none"CSS 效果?将被隐藏,但保留它在页面上占用的空间