我希望删除第一个链接的 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>
最佳答案
如果您只想删除第一个 a
的 href
,请使用 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/